Skip to content

Commit fa1d992

Browse files
committed
Try to fix #479
1 parent fd9b65d commit fa1d992

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public String[] deserialize(JsonParser jp, DeserializationContext ctxt) throws I
6363
if (t == JsonToken.VALUE_STRING) {
6464
value = jp.getText();
6565
} else if (t == JsonToken.VALUE_NULL) {
66-
value = _elementDeserializer.getNullValue();
66+
value = null; // since we have established that '_elementDeserializer == null' earlier
6767
} else {
6868
value = _parseString(jp, ctxt);
6969
}
@@ -92,7 +92,7 @@ protected final String[] _deserializeCustom(JsonParser jp, DeserializationContex
9292

9393
while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
9494
// Ok: no need to convert Strings, but must recognize nulls
95-
String value = (t == JsonToken.VALUE_NULL) ? null : deser.deserialize(jp, ctxt);
95+
String value = (t == JsonToken.VALUE_NULL) ? deser.getNullValue() : deser.deserialize(jp, ctxt);
9696
if (ix >= chunk.length) {
9797
chunk = buffer.appendCompletedChunk(chunk);
9898
ix = 0;

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

+7-7
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@
2020
public class TestArrayDeserialization
2121
extends BaseMapTest
2222
{
23-
/*
24-
/**********************************************************
25-
/* Helper classes
26-
/**********************************************************
27-
*/
28-
2923
public final static class Bean1
3024
{
3125
int _x, _y;
@@ -252,7 +246,7 @@ public void testStringArray() throws Exception
252246
"a", "b", "abcd", "", "???", "\"quoted\"", "lf: \n",
253247
};
254248
StringWriter sw = new StringWriter();
255-
JsonGenerator jg = new JsonFactory().createGenerator(sw);
249+
JsonGenerator jg = MAPPER.getFactory().createGenerator(sw);
256250
jg.writeStartArray();
257251
for (String str : STRS) {
258252
jg.writeString(str);
@@ -267,6 +261,12 @@ public void testStringArray() throws Exception
267261
for (int i = 0; i < STRS.length; ++i) {
268262
assertEquals(STRS[i], result[i]);
269263
}
264+
265+
// [#479]: null handling was busted in 2.4.0
266+
result = MAPPER.readValue(" [ null ]", String[].class);
267+
assertNotNull(result);
268+
assertEquals(1, result.length);
269+
assertNull(result[0]);
270270
}
271271

272272
public void testCharArray() throws Exception

0 commit comments

Comments
 (0)