diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x index cdf0779..9200607 100644 --- a/release-notes/VERSION-2.x +++ b/release-notes/VERSION-2.x @@ -4,6 +4,11 @@ Project: jackson-datatype-jsr353 === Releases === ------------------------------------------------------------------------ +2.10.5 (not yet released) + +#18: revert #16 as it can cause issues if target type is `JsonObject` + (reported by sithmein@github) + 2.10.4 (03-May-2020) #16: Null being deserialized as null literal instead of JsonValue.NULL diff --git a/src/main/java/com/fasterxml/jackson/datatype/jsr353/JsonValueDeserializer.java b/src/main/java/com/fasterxml/jackson/datatype/jsr353/JsonValueDeserializer.java index dd11816..41b1315 100644 --- a/src/main/java/com/fasterxml/jackson/datatype/jsr353/JsonValueDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/datatype/jsr353/JsonValueDeserializer.java @@ -38,10 +38,13 @@ public JsonValue deserialize(JsonParser p, DeserializationContext ctxt) } } + // 02-Jun-2020, tatu: Alas, as per [#18], can not do quite like so... + /* @Override public JsonValue getNullValue(final DeserializationContext ctxt) { return JsonValue.NULL; } + */ @Override public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, diff --git a/src/test/java/com/fasterxml/jackson/datatype/jsr353/DeserViaCreatorTest.java b/src/test/java/com/fasterxml/jackson/datatype/jsr353/DeserViaCreatorTest.java new file mode 100644 index 0000000..b8c95d6 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/datatype/jsr353/DeserViaCreatorTest.java @@ -0,0 +1,33 @@ +package com.fasterxml.jackson.datatype.jsr353; + +import javax.json.JsonObject; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class DeserViaCreatorTest extends TestBase +{ + static class Pojo { + String text; + JsonObject object; + + @JsonCreator + public Pojo(@JsonProperty("s") String s, @JsonProperty("o") JsonObject o) { + text = s; + object = o; + } + } + + public void testCreatorDeser() throws Exception + { + final ObjectMapper mapper = new ObjectMapper() + .registerModule(MODULE); + Pojo p = mapper.readerFor(Pojo.class) + .readValue( "{\"s\": \"String\", \"o\": { \"a\": 1, \"b\": \"2\" } }"); + assertNotNull(p); + + p = mapper.readerFor(Pojo.class).readValue("{\"s\": \"String\"}"); + assertNotNull(p); + } +} diff --git a/src/test/java/com/fasterxml/jackson/datatype/jsr353/SimpleDeserializeTest.java b/src/test/java/com/fasterxml/jackson/datatype/jsr353/SimpleDeserializeTest.java index 79d97a6..d3c2795 100644 --- a/src/test/java/com/fasterxml/jackson/datatype/jsr353/SimpleDeserializeTest.java +++ b/src/test/java/com/fasterxml/jackson/datatype/jsr353/SimpleDeserializeTest.java @@ -99,6 +99,8 @@ public void testBinaryNode() throws Exception } // for [datatype-jsr353#16] + // 02-Jun-2020, tatu: Alas, as per [#18], can not do quite like so... +/* public void testNullNode() throws Exception { final String serializedNull = MAPPER.writeValueAsString(JsonValue.NULL); @@ -106,4 +108,5 @@ public void testNullNode() throws Exception final JsonValue deserializedNull = MAPPER.readValue(serializedNull, JsonValue.class); assertEquals(JsonValue.NULL, deserializedNull); } + */ }