diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/TestCreators2.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/TestCreators2.java index 9b944fa5..704579e3 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/TestCreators2.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/TestCreators2.java @@ -229,7 +229,9 @@ public void testSimpleConstructor() throws Exception // Test for [JACKSON-372] public void testMissingPrimitives() throws Exception { - Primitives p = MAPPER.readValue("{}", Primitives.class); + Primitives p = MAPPER.readerFor(Primitives.class) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .readValue("{}"); assertFalse(p.b); assertEquals(0, p.x); assertEquals(0.0, p.d); diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceJDKScalarsTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceJDKScalarsTest.java index 674800ac..84f2e175 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceJDKScalarsTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceJDKScalarsTest.java @@ -79,6 +79,7 @@ private void _verifyNullOkFromEmpty(Class type, Object exp) throws IOExceptio { Object result = COERCING_MAPPER.readerFor(type) .with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .readValue("\"\""); if (exp == null) { assertNull(result); diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceStringToIntsTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceStringToIntsTest.java index 36d034eb..89e7be55 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceStringToIntsTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceStringToIntsTest.java @@ -32,6 +32,7 @@ public class CoerceStringToIntsTest extends AfterburnerTestBase private final ObjectMapper MAPPER_TO_NULL = afterburnerMapperBuilder() .withCoercionConfig(LogicalType.Integer, cfg -> cfg.setCoercion(CoercionInputShape.String, CoercionAction.AsNull)) + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .build(); private final ObjectMapper MAPPER_TO_FAIL = afterburnerMapperBuilder() diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceToBooleanTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceToBooleanTest.java index a16c17f3..8b6dec27 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceToBooleanTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/CoerceToBooleanTest.java @@ -222,22 +222,25 @@ public void testIntToBooleanCoercionSuccessRoot() throws Exception // Test for verifying that Long values are coerced to boolean correctly as well public void testLongToBooleanCoercionOk() throws Exception { + ObjectReader r = DEFAULT_MAPPER.reader() + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES); + long value = 1L + Integer.MAX_VALUE; - BooleanWrapper b = DEFAULT_MAPPER.readValue("{\"primitive\" : "+value+", \"wrapper\":"+value+", \"ctor\":"+value+"}", - BooleanWrapper.class); + BooleanWrapper b = r.forType(BooleanWrapper.class) + .readValue("{\"primitive\" : "+value+", \"wrapper\":"+value+", \"ctor\":"+value+"}"); assertEquals(Boolean.TRUE, b.wrapper); assertTrue(b.primitive); assertEquals(Boolean.TRUE, b.ctor); // but ensure we can also get `false` - b = DEFAULT_MAPPER.readValue("{\"primitive\" : 0 , \"wrapper\":0, \"ctor\":0}", - BooleanWrapper.class); + b = r.forType(BooleanWrapper.class) + .readValue("{\"primitive\" : 0 , \"wrapper\":0, \"ctor\":0}"); assertEquals(Boolean.FALSE, b.wrapper); assertFalse(b.primitive); assertEquals(Boolean.FALSE, b.ctor); - boolean[] boo = DEFAULT_MAPPER.readValue("[ 0, 15, \"\", \"false\", \"True\" ]", - boolean[].class); + boolean[] boo = r.forType(boolean[].class) + .readValue("[ 0, 15, \"\", \"false\", \"True\" ]"); assertEquals(5, boo.length); assertFalse(boo[0]); assertTrue(boo[1]); diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java index 7fa1d28c..532db667 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java @@ -30,7 +30,9 @@ static class DoubleBean private final static String BEAN_WITH_NULL_VALUE = "{\"value\": null}"; - private final ObjectMapper MAPPER = newAfterburnerMapper(); + private final ObjectMapper MAPPER = afterburnerMapperBuilder() + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .build(); private final ObjectMapper FAIL_ON_NULL_MAPPER = afterburnerMapperBuilder() .enable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .build(); diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/filter/NullConversionsForContentTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/filter/NullConversionsForContentTest.java index 39b5e5c3..22e11e65 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/filter/NullConversionsForContentTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/filter/NullConversionsForContentTest.java @@ -248,24 +248,30 @@ public void testNullsAsEmptyWithPrimitiveArrays() throws Exception // int[] { - NullContentAsEmpty result = MAPPER.readValue(JSON, - new TypeReference>() { }); + NullContentAsEmpty result = MAPPER.readerFor( + new TypeReference>() { }) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .readValue(JSON); assertEquals(1, result.values.length); assertEquals(0, result.values[0]); } // long[] { - NullContentAsEmpty result = MAPPER.readValue(JSON, - new TypeReference>() { }); + NullContentAsEmpty result = MAPPER.readerFor( + new TypeReference>() { }) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .readValue(JSON); assertEquals(1, result.values.length); assertEquals(0L, result.values[0]); } // boolean[] { - NullContentAsEmpty result = MAPPER.readValue(JSON, - new TypeReference>() { }); + NullContentAsEmpty result = MAPPER.readerFor( + new TypeReference>() { }) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .readValue(JSON); assertEquals(1, result.values.length); assertEquals(false, result.values[0]); } diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/jdk/JDKScalarsDeserTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/jdk/JDKScalarsDeserTest.java index ee5eb365..384b88e1 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/jdk/JDKScalarsDeserTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/jdk/JDKScalarsDeserTest.java @@ -26,7 +26,9 @@ public class JDKScalarsDeserTest extends AfterburnerTestBase { - private final ObjectMapper MAPPER = newAfterburnerMapper(); + private final ObjectMapper MAPPER = mapperBuilder() + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .build(); private final static String NAN_STRING = "NaN"; diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/merge/ArrayMergeTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/merge/ArrayMergeTest.java index 77ee5032..9df823eb 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/merge/ArrayMergeTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/merge/ArrayMergeTest.java @@ -88,6 +88,7 @@ public void testByteArrayMerging() throws Exception MergedX input = new MergedX(new byte[] { 1, 2 }); MergedX result = MAPPER .readerFor(new TypeReference>() {}) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .withValueToUpdate(input) .readValue(aposToQuotes("{'value':[4, 6.0, null]}")); assertSame(input, result); diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/struct/ScalarCoercionTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/struct/ScalarCoercionTest.java index bef86cb5..f53e562e 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/deser/struct/ScalarCoercionTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/deser/struct/ScalarCoercionTest.java @@ -58,6 +58,7 @@ private void _verifyNullOkFromEmpty(Class type, Object exp) throws IOExceptio { Object result = COERCING_MAPPER.readerFor(type) .with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .readValue("\"\""); if (exp == null) { assertNull(result); diff --git a/afterburner/src/test/java/tools/jackson/module/afterburner/roundtrip/BiggerDataTest.java b/afterburner/src/test/java/tools/jackson/module/afterburner/roundtrip/BiggerDataTest.java index 03683f99..e4d70e7a 100644 --- a/afterburner/src/test/java/tools/jackson/module/afterburner/roundtrip/BiggerDataTest.java +++ b/afterburner/src/test/java/tools/jackson/module/afterburner/roundtrip/BiggerDataTest.java @@ -78,7 +78,9 @@ static class Area { /********************************************************** */ - private final ObjectMapper MAPPER = newAfterburnerMapper(); + private final ObjectMapper MAPPER = mapperBuilder() + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .build(); public void testReading() throws Exception { diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/TestCreators2.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/TestCreators2.java index 584f04a6..4dbed2e3 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/TestCreators2.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/TestCreators2.java @@ -227,7 +227,10 @@ public void testSimpleConstructor() throws Exception // Test for [JACKSON-372] public void testMissingPrimitives() throws Exception { - Primitives p = MAPPER.readValue("{}", Primitives.class); + Primitives p = MAPPER + .readerFor(Primitives.class) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .readValue("{}"); assertFalse(p.b); assertEquals(0, p.x); assertEquals(0.0, p.d); diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceJDKScalarsTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceJDKScalarsTest.java index 4cbeca0e..11252da0 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceJDKScalarsTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceJDKScalarsTest.java @@ -79,6 +79,7 @@ private void _verifyNullOkFromEmpty(Class type, Object exp) throws IOExceptio { Object result = COERCING_MAPPER.readerFor(type) .with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .readValue("\"\""); if (exp == null) { assertNull(result); diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceStringToIntsTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceStringToIntsTest.java index 65db8865..5b683578 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceStringToIntsTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceStringToIntsTest.java @@ -32,6 +32,7 @@ public class CoerceStringToIntsTest extends BlackbirdTestBase private final ObjectMapper MAPPER_TO_NULL = mapperBuilder() .withCoercionConfig(LogicalType.Integer, cfg -> cfg.setCoercion(CoercionInputShape.String, CoercionAction.AsNull)) + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .build(); private final ObjectMapper MAPPER_TO_FAIL = mapperBuilder() diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceToBooleanTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceToBooleanTest.java index 3625d2ac..91a711ae 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceToBooleanTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/CoerceToBooleanTest.java @@ -222,22 +222,25 @@ public void testIntToBooleanCoercionSuccessRoot() throws Exception // Test for verifying that Long values are coerced to boolean correctly as well public void testLongToBooleanCoercionOk() throws Exception { + ObjectReader r = DEFAULT_MAPPER.reader() + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES); + long value = 1L + Integer.MAX_VALUE; - BooleanWrapper b = DEFAULT_MAPPER.readValue("{\"primitive\" : "+value+", \"wrapper\":"+value+", \"ctor\":"+value+"}", - BooleanWrapper.class); + BooleanWrapper b = r.forType(BooleanWrapper.class) + .readValue("{\"primitive\" : "+value+", \"wrapper\":"+value+", \"ctor\":"+value+"}"); assertEquals(Boolean.TRUE, b.wrapper); assertTrue(b.primitive); assertEquals(Boolean.TRUE, b.ctor); // but ensure we can also get `false` - b = DEFAULT_MAPPER.readValue("{\"primitive\" : 0 , \"wrapper\":0, \"ctor\":0}", - BooleanWrapper.class); + b = r.forType(BooleanWrapper.class) + .readValue("{\"primitive\" : 0 , \"wrapper\":0, \"ctor\":0}"); assertEquals(Boolean.FALSE, b.wrapper); assertFalse(b.primitive); assertEquals(Boolean.FALSE, b.ctor); - boolean[] boo = DEFAULT_MAPPER.readValue("[ 0, 15, \"\", \"false\", \"True\" ]", - boolean[].class); + boolean[] boo = r.forType(boolean[].class) + .readValue("[ 0, 15, \"\", \"false\", \"True\" ]"); assertEquals(5, boo.length); assertFalse(boo[0]); assertTrue(boo[1]); diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java index d9e30d45..7402b6ba 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/convert/TestFailOnPrimitiveFromNullDeserialization.java @@ -44,10 +44,14 @@ static class DoubleBean public void testPassPrimitiveFromNull() throws Exception { - LongBean longBean = MAPPER.readValue(BEAN_WITH_NULL_VALUE, LongBean.class); - IntBean intBean = MAPPER.readValue(BEAN_WITH_NULL_VALUE, IntBean.class); - BooleanBean booleanBean = MAPPER.readValue(BEAN_WITH_NULL_VALUE, BooleanBean.class); - DoubleBean doubleBean = MAPPER.readValue(BEAN_WITH_NULL_VALUE, DoubleBean.class); + ObjectMapper mapper = mapperBuilder() + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .build(); + + LongBean longBean = mapper.readValue(BEAN_WITH_NULL_VALUE, LongBean.class); + IntBean intBean = mapper.readValue(BEAN_WITH_NULL_VALUE, IntBean.class); + BooleanBean booleanBean = mapper.readValue(BEAN_WITH_NULL_VALUE, BooleanBean.class); + DoubleBean doubleBean = mapper.readValue(BEAN_WITH_NULL_VALUE, DoubleBean.class); assertEquals(longBean.value, 0); assertEquals(intBean.value, 0); assertEquals(booleanBean.value, false); diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/filter/NullConversionsForContentTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/filter/NullConversionsForContentTest.java index 6f5a5679..f556d85b 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/filter/NullConversionsForContentTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/filter/NullConversionsForContentTest.java @@ -246,28 +246,33 @@ public void testNullsAsEmptyWithArrays() throws Exception public void testNullsAsEmptyWithPrimitiveArrays() throws Exception { + ObjectReader r = MAPPER.reader().without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES); + final String JSON = aposToQuotes("{'values':[null]}"); // int[] { - NullContentAsEmpty result = MAPPER.readValue(JSON, - new TypeReference>() { }); + NullContentAsEmpty result = r.forType( + new TypeReference>() { }) + .readValue(JSON); assertEquals(1, result.values.length); assertEquals(0, result.values[0]); } // long[] { - NullContentAsEmpty result = MAPPER.readValue(JSON, - new TypeReference>() { }); + NullContentAsEmpty result = r.forType( + new TypeReference>() { }) + .readValue(JSON); assertEquals(1, result.values.length); assertEquals(0L, result.values[0]); } // boolean[] { - NullContentAsEmpty result = MAPPER.readValue(JSON, - new TypeReference>() { }); + NullContentAsEmpty result = r.forType( + new TypeReference>() { }) + .readValue(JSON); assertEquals(1, result.values.length); assertEquals(false, result.values[0]); } diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/jdk/JDKScalarsDeserTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/jdk/JDKScalarsDeserTest.java index d21f7e94..7f92b7c8 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/jdk/JDKScalarsDeserTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/jdk/JDKScalarsDeserTest.java @@ -28,7 +28,9 @@ public class JDKScalarsDeserTest extends BlackbirdTestBase { - private final ObjectMapper MAPPER = newObjectMapper(); + private final ObjectMapper MAPPER = mapperBuilder() + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .build(); private final static String NAN_STRING = "NaN"; diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/merge/ArrayMergeTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/merge/ArrayMergeTest.java index 88d48b75..bc079564 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/merge/ArrayMergeTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/merge/ArrayMergeTest.java @@ -89,6 +89,7 @@ public void testByteArrayMerging() throws Exception MergedX input = new MergedX(new byte[] { 1, 2 }); MergedX result = MAPPER .readerFor(new TypeReference>() {}) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .withValueToUpdate(input) .readValue(aposToQuotes("{'value':[4, 6.0, null]}")); assertSame(input, result); diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/struct/ScalarCoercionTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/struct/ScalarCoercionTest.java index ebab52f2..ad6383f4 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/deser/struct/ScalarCoercionTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/deser/struct/ScalarCoercionTest.java @@ -58,6 +58,7 @@ private void _verifyNullOkFromEmpty(Class type, Object exp) throws IOExceptio { Object result = COERCING_MAPPER.readerFor(type) .with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT) + .without(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) .readValue("\"\""); if (exp == null) { assertNull(result); diff --git a/blackbird/src/test/java/tools/jackson/module/blackbird/roundtrip/BiggerDataTest.java b/blackbird/src/test/java/tools/jackson/module/blackbird/roundtrip/BiggerDataTest.java index 970364d8..2b92b18a 100644 --- a/blackbird/src/test/java/tools/jackson/module/blackbird/roundtrip/BiggerDataTest.java +++ b/blackbird/src/test/java/tools/jackson/module/blackbird/roundtrip/BiggerDataTest.java @@ -78,9 +78,12 @@ static class Area { /********************************************************** */ - private final ObjectMapper MAPPER = newBlackbirdMapper(); + private final ObjectMapper MAPPER = blackbirdMapperBuilder() + .disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .build(); - public void testReading() throws Exception + + public void testReading() throws Exception { Citm citm0 = MAPPER.readValue(getClass().getResourceAsStream("/data/citm_catalog.json"), Citm.class);