From 240abc8f49681e7b762af32839d0f2a1ef3c2c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20C=C3=B4t=C3=A9?= Date: Tue, 16 Jul 2019 09:41:03 -0400 Subject: [PATCH] Fix #1146. Adaptation of the fix done in #977 in the master. This one is only for v1 branch --- .../parser/util/SwaggerDeserializer.java | 2 +- .../io/swagger/parser/SwaggerParserTest.java | 6 +++ .../src/test/resources/issue-1146.yaml | 39 +++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-parser/src/test/resources/issue-1146.yaml diff --git a/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java b/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java index d0f39da126..c88a9fe26b 100644 --- a/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java +++ b/modules/swagger-parser/src/main/java/io/swagger/parser/util/SwaggerDeserializer.java @@ -218,7 +218,7 @@ private boolean isPathParamDefined(String pathParam, List parameters) return false; } else { for (Parameter parameter : parameters) { - if (pathParam.equals(parameter.getName()) && "path".equals(parameter.getIn())) { + if (parameter instanceof RefParameter || (pathParam.equals(parameter.getName()) && "path".equals(parameter.getIn()))) { return true; } } diff --git a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java index c78cd71905..42456fd812 100644 --- a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java +++ b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java @@ -77,6 +77,12 @@ public void testIssue111() { assertNotNull(result.getSwagger()); } + @Test + public void testIssue1146() { + SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("issue-1146.yaml", null, true); + assertEquals(0, result.getMessages().size()); + } + @Test public void testIssueDefinitionWithDots_2() { Swagger swagger = new SwaggerParser().read("SimpleAPI.yaml"); diff --git a/modules/swagger-parser/src/test/resources/issue-1146.yaml b/modules/swagger-parser/src/test/resources/issue-1146.yaml new file mode 100644 index 0000000000..ba766abe9b --- /dev/null +++ b/modules/swagger-parser/src/test/resources/issue-1146.yaml @@ -0,0 +1,39 @@ +swagger: "2.0" +info: + description: "Test" + version: "1.0.0" + title: "Swagger v2 example" + termsOfService: "http://swagger.io/terms/" + contact: + email: "apiteam@swagger.io" + license: + name: "Apache 2.0" + url: "http://www.apache.org/licenses/LICENSE-2.0.html" +host: "petstore.swagger.io" +basePath: "/v2" +schemes: + - "https" + - "http" +paths: + /brands/{brand-id}/stations: + get: + tags: + - Brand + summary: Returns a list of the brand's stations + operationId: getBrandStations + parameters: + - $ref: "#/parameters/brand-id" + - in: query + name: available-to-client-only + required: true + type: boolean + responses: + 200: + description: OK +parameters: + brand-id: + in: path + description: this is a test + name: brand-id + required: true + type: string \ No newline at end of file