Skip to content

Commit 24166ac

Browse files
committed
Fix #1307
1 parent 099f36a commit 24166ac

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

release-notes/VERSION

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Project: jackson-databind
1212
#1288: Type id not exposed for `JsonTypeInfo.As.EXTERNAL_PROPERTY` even when `visible` set to `true`
1313
#1301: Problem with `JavaType.toString()` for recursive (self-referential) types
1414
(reported by Brian P)
15+
#1307: `TypeWrappedDeserializer` doesn't delegate the `getNullValue()` method to `_deserializer`
16+
(reported by vfries@github)
1517

1618
2.7.5 (11-Jun-2016)
1719

src/main/java/com/fasterxml/jackson/databind/deser/impl/TypeWrappedDeserializer.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.fasterxml.jackson.databind.deser.impl;
22

33
import java.io.IOException;
4+
import java.util.Collection;
45

56
import com.fasterxml.jackson.core.JsonParser;
67
import com.fasterxml.jackson.databind.*;
@@ -35,6 +36,26 @@ public TypeWrappedDeserializer(TypeDeserializer typeDeser, JsonDeserializer<?> d
3536
public Class<?> handledType() {
3637
return _deserializer.handledType();
3738
}
39+
40+
@Override
41+
public JsonDeserializer<?> getDelegatee() {
42+
return _deserializer.getDelegatee();
43+
}
44+
45+
@Override
46+
public Collection<Object> getKnownPropertyNames() {
47+
return _deserializer.getKnownPropertyNames();
48+
}
49+
50+
@Override
51+
public Object getNullValue(DeserializationContext ctxt) throws JsonMappingException {
52+
return _deserializer.getNullValue(ctxt);
53+
}
54+
55+
@Override
56+
public Object getEmptyValue(DeserializationContext ctxt) throws JsonMappingException {
57+
return _deserializer.getEmptyValue(ctxt);
58+
}
3859

3960
@Override
4061
public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException

src/test/java/com/fasterxml/jackson/databind/deser/TestJDKAtomicTypes.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,4 +250,16 @@ public void testWithCustomDeserializer() throws Exception
250250
LCStringWrapper.class);
251251
assertEquals("foobar", w.value.get());
252252
}
253+
254+
// [databind#1307]
255+
@SuppressWarnings("unchecked")
256+
public void testNullValueHandling() throws Exception
257+
{
258+
ObjectMapper mapper = new ObjectMapper();
259+
AtomicReference<Double> inputData = new AtomicReference<Double>();
260+
String json = mapper.writeValueAsString(inputData);
261+
AtomicReference<Double> readData = (AtomicReference<Double>) mapper.readValue(json, AtomicReference.class);
262+
assertNotNull(readData);
263+
assertNull(readData.get());
264+
}
253265
}

0 commit comments

Comments
 (0)