Skip to content

Commit 18d747e

Browse files
author
Burak Serdar
committed
Fix #412: removed array fields has 0 size
1 parent ccc960b commit 18d747e

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

metadata/src/main/java/com/redhat/lightblue/metadata/PredefinedFields.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public static void updateArraySizes(EntityMetadata md, JsonNodeFactory factory,
9292
if (md.resolve(arrField) != null) {
9393
JsonNode arrNode = doc.get(arrField);
9494
if (arrNode == null || arrNode instanceof NullNode) {
95-
doc.modify(lengthField, null, false);
95+
doc.modify(lengthField, factory.numberNode(0), false);
9696
} else {
9797
doc.modify(lengthField, factory.numberNode(arrNode.size()), false);
9898
}

metadata/src/test/java/com/redhat/lightblue/metadata/PredefinedFieldsTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,4 +220,27 @@ public void testDocModify_ovrLength() throws Exception {
220220
Assert.assertNull(doc.get(new Path("obj1.simpleArr#")));
221221
Assert.assertEquals(1, doc.get(new Path("obj1.nested.objArr#")).intValue());
222222
}
223+
224+
@Test
225+
public void testRemoveArray() throws Exception {
226+
JsonNodeFactory factory = JsonNodeFactory.withExactBigDecimals(false);
227+
ObjectNode node = factory.objectNode();
228+
JsonDoc doc = new JsonDoc(node);
229+
230+
ObjectNode obj1;
231+
node.put("obj1", obj1 = factory.objectNode());
232+
node.put("simpleString", factory.textNode("str"));
233+
ArrayNode a1;
234+
obj1.put("simpleArr", a1 = factory.arrayNode());
235+
a1.add(factory.textNode("a"));
236+
ObjectNode o;
237+
obj1.put("nested", o = factory.objectNode());
238+
239+
o.put("objArr#", factory.numberNode(100));
240+
241+
System.out.println(doc);
242+
PredefinedFields.updateArraySizes(getMD2(), factory, doc);
243+
244+
Assert.assertEquals(0,doc.get(new Path("obj1.nested.objArr#")).intValue());
245+
}
223246
}

0 commit comments

Comments
 (0)