Skip to content

Commit 11dfe14

Browse files
heshamMassoudcowtowncoder
authored andcommitted
Fix jsonNode#addAll (#2443)
Fix #2442: ArrayNode.addAll() needs to handle `null` entries
1 parent cb69a70 commit 11dfe14

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/main/java/com/fasterxml/jackson/databind/node/ArrayNode.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,9 @@ public ArrayNode addAll(ArrayNode other)
316316
*/
317317
public ArrayNode addAll(Collection<? extends JsonNode> nodes)
318318
{
319-
_children.addAll(nodes);
319+
for (JsonNode node : nodes) {
320+
add(node);
321+
}
320322
return this;
321323
}
322324

src/test/java/com/fasterxml/jackson/databind/node/ArrayNodeTest.java

+18
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
1313
import com.fasterxml.jackson.databind.node.TextNode;
1414
import com.fasterxml.jackson.databind.node.TreeTraversingParser;
15+
import static java.util.Arrays.asList;
1516

1617
/**
1718
* Additional tests for {@link ArrayNode} container class.
@@ -186,6 +187,23 @@ public void testNullAdds()
186187
}
187188
}
188189

190+
public void testAddAllWithNullInCollection()
191+
{
192+
// preparation
193+
final ArrayNode array = JsonNodeFactory.instance.arrayNode();
194+
195+
// test
196+
array.addAll(asList(null, JsonNodeFactory.instance.objectNode()));
197+
198+
// assertions
199+
assertEquals(2, array.size());
200+
201+
for (JsonNode node : array) {
202+
assertFalse(node.isNull());
203+
}
204+
assertEquals(NullNode.getInstance(), array.get(0));
205+
}
206+
189207
public void testNullInserts()
190208
{
191209
JsonNodeFactory f = objectMapper().getNodeFactory();

0 commit comments

Comments
 (0)