Skip to content

Commit 301f44b

Browse files
committed
fix #188 should not iterate when array is empty
1 parent 1ab2042 commit 301f44b

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

Diff for: src/main/java/com/jsoniter/any/ArrayLazyAny.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ private Any fillCacheUntil(int target) {
172172
if (lastParsedPos == head) {
173173
if (!CodegenAccess.readArrayStart(iter)) {
174174
lastParsedPos = tail;
175-
throw new IndexOutOfBoundsException();
175+
return null;
176176
}
177177
Any element = iter.readAny();
178178
cache.add(element);

Diff for: src/test/java/com/jsoniter/any/TestList.java

+8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package com.jsoniter.any;
22

3+
import com.jsoniter.JsonIterator;
34
import junit.framework.TestCase;
45

56
import java.util.ArrayList;
67
import java.util.Arrays;
78
import java.util.Collections;
9+
import java.util.Iterator;
810

911
public class TestList extends TestCase {
1012
public void test_size() {
@@ -52,4 +54,10 @@ public void test_to_string() {
5254
any.asList().add(Any.wrap(4));
5355
assertEquals("[1,2,3,4]", any.toString());
5456
}
57+
58+
public void test_for_each() {
59+
Any a = JsonIterator.deserialize("[]");
60+
Iterator<Any> iter = a.iterator();
61+
assertFalse(iter.hasNext());
62+
}
5563
}

0 commit comments

Comments
 (0)