Skip to content

Commit ea66599

Browse files
committed
...
1 parent 41e31e1 commit ea66599

23 files changed

+40
-21
lines changed

src/main/java/com/fasterxml/jackson/databind/JsonDeserializer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ public Collection<Object> getKnownPropertyNames() {
275275
*
276276
* @since 2.6 Added to replace earlier no-arguments variant
277277
*/
278+
@Override
278279
public T getNullValue(DeserializationContext ctxt) throws JsonMappingException {
279280
// Change the direction in 2.7
280281
return getNullValue();

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class NullsConstantProvider
2222

2323
protected final AccessPattern _access;
2424

25-
public NullsConstantProvider(Object nvl) {
25+
protected NullsConstantProvider(Object nvl) {
2626
_nullValue = nvl;
2727
_access = (_nullValue == null) ? AccessPattern.ALWAYS_NULL
2828
: AccessPattern.CONSTANT;
@@ -41,6 +41,13 @@ public static NullsConstantProvider nuller() {
4141
return NULLER;
4242
}
4343

44+
public static NullsConstantProvider forValue(Object nvl) {
45+
if (nvl == null) {
46+
return NULLER;
47+
}
48+
return new NullsConstantProvider(nvl);
49+
}
50+
4451
@Override
4552
public AccessPattern getNullAccessPattern() {
4653
return _access;

src/main/java/com/fasterxml/jackson/databind/deser/std/StdDeserializer.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.fasterxml.jackson.databind.deser.impl.NullsFailProvider;
1919
import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
2020
import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
21+
import com.fasterxml.jackson.databind.util.AccessPattern;
2122
import com.fasterxml.jackson.databind.util.ClassUtil;
2223
import com.fasterxml.jackson.databind.util.Converter;
2324

@@ -1145,6 +1146,16 @@ protected final NullValueProvider _findNullProvider(DeserializationContext ctxt,
11451146
String.format("Can not create empty instance of %s, no default Creator", type));
11461147
}
11471148
}
1149+
// Second: can with pre-fetch value?
1150+
{
1151+
AccessPattern access = valueDeser.getEmptyAccessPattern();
1152+
if (access == AccessPattern.ALWAYS_NULL) {
1153+
return NullsConstantProvider.nuller();
1154+
}
1155+
if (access == AccessPattern.CONSTANT) {
1156+
return NullsConstantProvider.forValue(valueDeser.getEmptyValue(ctxt));
1157+
}
1158+
}
11481159
return new NullsAsEmptyProvider(valueDeser);
11491160
case SKIP: // not handled here
11501161
default: // SET/DEFAULT, nothing to do; S

src/test/java/com/fasterxml/jackson/databind/filter/IgnoreCreatorProp1317Test.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/filter/IgnoreCreatorProp1317Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.deser.filter;
22

33
import java.beans.ConstructorProperties;
44

src/test/java/com/fasterxml/jackson/databind/filter/IgnorePropertyOnDeser1217Test.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/filter/IgnorePropertyOnDeser1217Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.deser.filter;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.databind.BaseMapTest;

src/test/java/com/fasterxml/jackson/databind/filter/NullConversionsForContentTest.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/filter/NullConversionsForContentTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.deser.filter;
22

33
import java.util.*;
44

src/test/java/com/fasterxml/jackson/databind/filter/NullConversionsTest.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/filter/NullConversionsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.deser.filter;
22

33
import java.util.List;
44
import java.util.Map;

src/test/java/com/fasterxml/jackson/databind/filter/ProblemHandlerTest.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/filter/ProblemHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.deser.filter;
22

33
import java.io.IOException;
44
import java.util.Map;

src/test/java/com/fasterxml/jackson/databind/filter/TestUnknownPropertyDeserialization.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/filter/TestUnknownPropertyDeserialization.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.deser.filter;
22

33
import java.io.*;
44
import java.util.*;

src/test/java/com/fasterxml/jackson/databind/filter/IgnorePropsForSerTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/IgnorePropsForSerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.*;
44

src/test/java/com/fasterxml/jackson/databind/filter/JsonInclude1327Test.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/JsonInclude1327Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.*;
44

src/test/java/com/fasterxml/jackson/databind/filter/JsonIncludeArrayTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/JsonIncludeArrayTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.io.IOException;
44

src/test/java/com/fasterxml/jackson/databind/filter/JsonIncludeCollectionTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/JsonIncludeCollectionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.Arrays;
44
import java.util.EnumSet;

src/test/java/com/fasterxml/jackson/databind/filter/JsonIncludeCustomTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/JsonIncludeCustomTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.LinkedHashMap;
44
import java.util.Map;

src/test/java/com/fasterxml/jackson/databind/filter/JsonIncludeTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/JsonIncludeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.io.IOException;
44
import java.util.*;

src/test/java/com/fasterxml/jackson/databind/filter/MapInclusionTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/MapInclusionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.io.IOException;
44
import java.util.LinkedHashMap;

src/test/java/com/fasterxml/jackson/databind/filter/NullSerializationTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/NullSerializationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.io.*;
44

src/test/java/com/fasterxml/jackson/databind/filter/ReadOnlyProperties95Test.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/ReadOnlyProperties95Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.databind.*;

src/test/java/com/fasterxml/jackson/databind/filter/TestAnyGetterFiltering.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/TestAnyGetterFiltering.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.*;
44

src/test/java/com/fasterxml/jackson/databind/filter/TestIgnoredTypes.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/TestIgnoredTypes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.ArrayList;
44
import java.util.List;

src/test/java/com/fasterxml/jackson/databind/filter/TestJsonFilter.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/TestJsonFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import com.fasterxml.jackson.annotation.*;
44

src/test/java/com/fasterxml/jackson/databind/filter/TestMapFiltering.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/TestMapFiltering.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.io.IOException;
44
import java.lang.annotation.*;

src/test/java/com/fasterxml/jackson/databind/filter/TestSimpleSerializationIgnore.java renamed to src/test/java/com/fasterxml/jackson/databind/ser/filter/TestSimpleSerializationIgnore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.filter;
1+
package com.fasterxml.jackson.databind.ser.filter;
22

33
import java.util.*;
44

0 commit comments

Comments
 (0)