From f2dd5d0bcad1f7b00b0fb80e48802abbbca50aaa Mon Sep 17 00:00:00 2001 From: r-sreesaran <r.sreesaran@gmail.com> Date: Fri, 2 Oct 2020 13:32:14 +0530 Subject: [PATCH 1/3] Fix for issue-1432 --- .../io/swagger/parser/util/SwaggerDeserializer.java | 2 +- .../test/java/io/swagger/parser/SwaggerParserTest.java | 10 ++++++++++ .../swagger-parser/src/test/resources/issue-1432.yaml | 10 ++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-parser/src/test/resources/issue-1432.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 caeabf8f60..7ef6feb257 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 @@ -1144,7 +1144,7 @@ public Map<String, Response> responses(ObjectNode node, String location, ParseRe } else { ObjectNode obj = getObject(key, node, false, location + ".responses", result); - Response response = response(obj, location + "." + key, result); + Response response = response(obj, location + "." +"responses."+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..2c7b9d3872 --- /dev/null +++ b/modules/swagger-parser/src/test/resources/issue-1432.yaml @@ -0,0 +1,10 @@ +swagger: "2.0" +info: + description: + some description +paths: + /tickets: + get: + responses: + 200: + title: abc \ No newline at end of file From 02f2cbd91cac659462227093bdc51743d6a6293a Mon Sep 17 00:00:00 2001 From: r-sreesaran <r.sreesaran@gmail.com> Date: Fri, 2 Oct 2020 14:17:37 +0530 Subject: [PATCH 2/3] Fix for issue-1432 --- .../java/io/swagger/parser/util/SwaggerDeserializer.java | 6 +++--- modules/swagger-parser/src/test/resources/issue-1432.yaml | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) 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 7ef6feb257..e4b4dfc1a6 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<String, Response> responsesObject = responses(responses, location, result); + ObjectNode responses = getObject("responses", obj, true, location+".responses", result); + Map<String, Response> responsesObject = responses(responses, location+".responses", result); if (responsesObject != null && responsesObject.size() == 0) { result.missing(location, "responses"); } @@ -1144,7 +1144,7 @@ public Map<String, Response> responses(ObjectNode node, String location, ParseRe } else { ObjectNode obj = getObject(key, node, false, location + ".responses", result); - Response response = response(obj, location + "." +"responses."+key, result); + Response response = response(obj, location + "."+key, result); output.put(key, response); } } diff --git a/modules/swagger-parser/src/test/resources/issue-1432.yaml b/modules/swagger-parser/src/test/resources/issue-1432.yaml index 2c7b9d3872..e2a235de9d 100644 --- a/modules/swagger-parser/src/test/resources/issue-1432.yaml +++ b/modules/swagger-parser/src/test/resources/issue-1432.yaml @@ -1,10 +1,12 @@ swagger: "2.0" info: - description: - some description + description: some description + title: data + version: "1" paths: /tickets: get: responses: 200: - title: abc \ No newline at end of file + title: abc + description: data \ No newline at end of file From 77f27efe61d9102ca6b3a810a104a497385a26e7 Mon Sep 17 00:00:00 2001 From: r-sreesaran <r.sreesaran@gmail.com> Date: Sat, 3 Oct 2020 23:33:41 +0530 Subject: [PATCH 3/3] Fix for issue-1432 --- .../main/java/io/swagger/parser/util/SwaggerDeserializer.java | 3 ++- .../src/test/java/io/swagger/parser/SwaggerReaderTest.java | 2 +- .../src/test/resources/nested-file-references/issue-421.yaml | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) 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 e4b4dfc1a6..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 @@ -406,6 +406,7 @@ public Operation operation(ObjectNode obj, String location, ParseResult result) Iterator<JsonNode> 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,7 +1144,7 @@ public Map<String, Response> responses(ObjectNode node, String location, ParseRe if (key.startsWith("x-")) { } else { - ObjectNode obj = getObject(key, node, false, location + ".responses", 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/SwaggerReaderTest.java b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerReaderTest.java index f3af580c0b..897c6e1385 100644 --- a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerReaderTest.java +++ b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerReaderTest.java @@ -282,7 +282,7 @@ public void testIssue136() { " 200:\n" + " description: 'the pet'\n" + " schema:\n" + - " $ref: 'http://petstore.swagger.io/v2/swagger.json#/definitions/Pet'"; + " $ref: 'https://petstore.swagger.io/v2/swagger.json#/definitions/Pet'"; SwaggerDeserializationResult result = new SwaggerParser().readWithInfo(spec); diff --git a/modules/swagger-parser/src/test/resources/nested-file-references/issue-421.yaml b/modules/swagger-parser/src/test/resources/nested-file-references/issue-421.yaml index ccf0cbde16..c67301a01d 100644 --- a/modules/swagger-parser/src/test/resources/nested-file-references/issue-421.yaml +++ b/modules/swagger-parser/src/test/resources/nested-file-references/issue-421.yaml @@ -66,12 +66,12 @@ paths: description: order placed for purchasing the pet required: true schema: - $ref: 'http://petstore.swagger.io/v2/swagger.json#/definitions/Order' + $ref: 'https://petstore.swagger.io/v2/swagger.json#/definitions/Order' responses: '200': description: successful operation schema: - $ref: 'http://petstore.swagger.io/v2/swagger.json#/definitions/Order' + $ref: 'https://petstore.swagger.io/v2/swagger.json#/definitions/Order' '400': description: Invalid Order