diff --git a/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/mixin/Schema31Mixin.java b/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/mixin/Schema31Mixin.java index 066151dd39..44f7315461 100644 --- a/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/mixin/Schema31Mixin.java +++ b/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/mixin/Schema31Mixin.java @@ -100,7 +100,7 @@ public Set deserialize(JsonParser p, DeserializationContext ctxt) throws Set types = new LinkedHashSet<>(); if (node.isArray()) { node.forEach(n -> { - if (n != null && !n.isNull()) { + if (!n.isNull()) { types.add(n.asText()); } }); diff --git a/modules/swagger-core/src/test/java/io/swagger/v3/core/deserialization/JsonSchemaTypeRoundTripTest.java b/modules/swagger-core/src/test/java/io/swagger/v3/core/deserialization/JsonSchemaTypeRoundTripTest.java index 4bc335b576..cf0965c881 100644 --- a/modules/swagger-core/src/test/java/io/swagger/v3/core/deserialization/JsonSchemaTypeRoundTripTest.java +++ b/modules/swagger-core/src/test/java/io/swagger/v3/core/deserialization/JsonSchemaTypeRoundTripTest.java @@ -48,6 +48,14 @@ public void multiTypeArrayRoundTripsOnJsonSchema() throws Exception { assertEquals(roundTripped.getTypes(), setOf("string", "null")); } + @Test + public void typeArrayWithLiteralJsonNullElementSkipsIt() throws Exception { + JsonSchema roundTripped = Json31.mapper().readValue("{\"type\":[\"string\",null]}", JsonSchema.class); + + assertNotNull(roundTripped); + assertEquals(roundTripped.getTypes(), setOf("string")); + } + @Test public void convertValuePreservesSingleType() { JsonSchema original = new JsonSchema();