Skip to content

Commit ff83f13

Browse files
Flex list: explicitly throw on null elements.
1 parent d75de94 commit ff83f13

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

objectbox-java/src/main/java/io/objectbox/converter/FlexObjectConverter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ private void addVector(FlexBuffersBuilder builder, String vectorKey, List<Object
142142
int vectorStart = builder.startVector();
143143

144144
for (Object item : list) {
145+
if (item == null) {
146+
throw new IllegalArgumentException("List elements must not be null");
147+
}
145148
if (item instanceof Map) {
146149
//noinspection unchecked
147150
addMap(builder, null, (Map<Object, Object>) item);

tests/objectbox-java-test/src/test/java/io/objectbox/converter/FlexObjectConverterTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.Map;
1010

1111
import static org.junit.Assert.assertEquals;
12+
import static org.junit.Assert.assertThrows;
1213

1314
/**
1415
* Tests {@link FlexObjectConverter} basic types and flexible list conversion.
@@ -51,6 +52,14 @@ public void list_works() {
5152
// Java Float is returned as Double, so expect Double.
5253
list.set(3, (double) 1.3f);
5354
assertEquals(list, restoredList);
55+
56+
// list with null element
57+
list.add(null);
58+
IllegalArgumentException exception = assertThrows(
59+
IllegalArgumentException.class,
60+
() -> convertAndBack(list, converter)
61+
);
62+
assertEquals("List elements must not be null", exception.getMessage());
5463
}
5564

5665
@SuppressWarnings("unchecked")

0 commit comments

Comments
 (0)