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 7877a58ca2..139b0f643e 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 e6f8e28abc..9c4b7fcaf4 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 @@ -85,6 +85,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