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 caeabf8f60..ec5a66e60f 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 @@ -394,8 +394,8 @@ public Operation operation(ObjectNode obj, String location, ParseResult result) ArrayNode parameters = getArray("parameters", obj, false, location, result); output.setParameters(parameters(parameters, location, result)); - ObjectNode responses = getObject("responses", obj, true, location, result); - Map responsesObject = responses(responses, location, result); + ObjectNode responses = getObject("responses", obj, true, location+".responses", result); + Map responsesObject = responses(responses, location+".responses", result); if (responsesObject != null && responsesObject.size() == 0) { result.missing(location, "responses"); } @@ -406,6 +406,7 @@ public Operation operation(ObjectNode obj, String location, ParseResult result) Iterator it = array.iterator(); while (it.hasNext()) { JsonNode n = it.next(); + String s = getString(n, location + ".schemes", result); if (s != null) { Scheme scheme = Scheme.forValue(s); @@ -1143,8 +1144,8 @@ public Map responses(ObjectNode node, String location, ParseRe if (key.startsWith("x-")) { } else { - ObjectNode obj = getObject(key, node, false, location + ".responses", result); - Response response = response(obj, location + "." + key, result); + ObjectNode obj = getObject(key, node, false, location, result); + Response response = response(obj, location + "."+key, result); output.put(key, response); } } 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 177061f3c3..d2610154b1 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 @@ -1648,4 +1648,14 @@ public void testIssue913() { Assert.assertNotNull(swagger.getDefinitions().get("indicatorType")); Assert.assertEquals(swagger.getDefinitions().get("indicatorType").getProperties().size(), 1); } + + @Test + public void testIssuei432() { + + SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("src/test/resources/issue-1432.yaml", null, true); + assertNotNull(result); + assertEquals("attribute paths.'/tickets'(get).responses.200.title is unexpected",result.getMessages().get(0)); + + + } } diff --git a/modules/swagger-parser/src/test/resources/issue-1432.yaml b/modules/swagger-parser/src/test/resources/issue-1432.yaml new file mode 100644 index 0000000000..e2a235de9d --- /dev/null +++ b/modules/swagger-parser/src/test/resources/issue-1432.yaml @@ -0,0 +1,12 @@ +swagger: "2.0" +info: + description: some description + title: data + version: "1" +paths: + /tickets: + get: + responses: + 200: + title: abc + description: data \ No newline at end of file