@@ -81,12 +81,16 @@ enum EnumMapTestEnum {
81
81
A , B , C ;
82
82
}
83
83
84
- private final ObjectMapper MAPPER = objectMapper ();
84
+ private final ObjectMapper MAPPER = newJsonMapper ();
85
85
86
+ private final ObjectMapper CONTENT_NULL_FAIL_MAPPER = JsonMapper .builder ()
87
+ .defaultSetterInfo (JsonSetter .Value .construct (Nulls .AS_EMPTY , Nulls .FAIL ))
88
+ .build ();
89
+
86
90
/*
87
- /**********************************************************
91
+ /**********************************************************************
88
92
/* Test methods
89
- /**********************************************************
93
+ /**********************************************************************
90
94
*/
91
95
92
96
public void testNull () throws Exception
@@ -205,58 +209,73 @@ public void testPolymorphicDataNull() throws Exception
205
209
assertNull ("Proxy should be null!" , typeBNullData .proxy );
206
210
}
207
211
208
- // Test for databind #3227
209
- public void testNullsFailIfContentValueIsNull () throws Exception {
210
- ObjectMapper objectMapper = JsonMapper .builder ()
211
- .defaultSetterInfo (JsonSetter .Value .construct (Nulls .FAIL , Nulls .FAIL ))
212
- .build ();
213
-
212
+ // Test for [databind#3227]
213
+ public void testContentsNullFailForMaps () throws Exception
214
+ {
214
215
try {
215
- objectMapper .readValue ("{ \" field\" : null, \" property\" : '1' }" , Map .class );
216
+ CONTENT_NULL_FAIL_MAPPER .readValue ("{ \" field\" : null, \" property\" : 1 }" , Map .class );
216
217
fail ("InvalidNullException expected" );
217
218
} catch (InvalidNullException e ) {
219
+ verifyException (e , "Invalid `null` value encountered" );
218
220
}
219
221
220
222
try {
221
- objectMapper .readValue ("{ \" A\" : 1, \" B\" : null }" , new TypeReference <EnumMap <EnumMapTestEnum , Integer >>() {});
223
+ CONTENT_NULL_FAIL_MAPPER .readValue ("{ \" A\" : 1, \" B\" : null }" , new TypeReference <EnumMap <EnumMapTestEnum , Integer >>() {});
222
224
fail ("InvalidNullException expected" );
223
225
} catch (InvalidNullException e ) {
226
+ verifyException (e , "Invalid `null` value encountered" );
224
227
}
228
+ }
225
229
230
+ // Test for [databind#3227]
231
+ public void testContentsNullFailForCollections () throws Exception
232
+ {
226
233
try {
227
- objectMapper .readValue ("[null, {\" field\" : 1}]" , new TypeReference <List <Object >>() {});
234
+ CONTENT_NULL_FAIL_MAPPER .readValue ("[null, {\" field\" : 1}]" ,
235
+ new TypeReference <List <Object >>() {});
228
236
fail ("InvalidNullException expected" );
229
237
} catch (InvalidNullException e ) {
238
+ verifyException (e , "Invalid `null` value encountered" );
230
239
}
231
240
232
241
try {
233
- objectMapper .readValue ("[{\" field\" : 1}, null]" , new TypeReference <Set <Object >>() {});
242
+ CONTENT_NULL_FAIL_MAPPER .readValue ("[{\" field\" : 1}, null]" ,
243
+ new TypeReference <Set <Object >>() {});
234
244
fail ("InvalidNullException expected" );
235
245
} catch (InvalidNullException e ) {
246
+ verifyException (e , "Invalid `null` value encountered" );
236
247
}
237
248
238
249
try {
239
- objectMapper .readValue ("[null, { \" field \" : 1} ]" , Object []. class );
250
+ CONTENT_NULL_FAIL_MAPPER .readValue ("[\" foo \" , null ]" , new TypeReference < List < String >>() {} );
240
251
fail ("InvalidNullException expected" );
241
252
} catch (InvalidNullException e ) {
253
+ verifyException (e , "Invalid `null` value encountered" );
242
254
}
243
255
244
256
try {
245
- objectMapper .readValue ("[\" foo\" , null]" , new TypeReference <List <String >>() {});
257
+ CONTENT_NULL_FAIL_MAPPER .readValue ("[\" foo\" , null]" , new TypeReference <Set <String >>() {});
246
258
fail ("InvalidNullException expected" );
247
259
} catch (InvalidNullException e ) {
260
+ verifyException (e , "Invalid `null` value encountered" );
248
261
}
262
+ }
249
263
264
+ // Test for [databind#3227]
265
+ public void testContentsNullFailForArrays () throws Exception
266
+ {
250
267
try {
251
- objectMapper .readValue ("[\" foo \" , null ]" , new TypeReference < Set < String >>() {} );
268
+ CONTENT_NULL_FAIL_MAPPER .readValue ("[null, { \" field \" : 1} ]" , Object []. class );
252
269
fail ("InvalidNullException expected" );
253
270
} catch (InvalidNullException e ) {
271
+ verifyException (e , "Invalid `null` value encountered" );
254
272
}
255
273
256
274
try {
257
- objectMapper .readValue ("[null, \" foo\" ]" , String [].class );
275
+ CONTENT_NULL_FAIL_MAPPER .readValue ("[null, \" foo\" ]" , String [].class );
258
276
fail ("InvalidNullException expected" );
259
277
} catch (InvalidNullException e ) {
278
+ verifyException (e , "Invalid `null` value encountered" );
260
279
}
261
280
}
262
281
}
0 commit comments