Skip to content

Commit a80780c

Browse files
authored
Merge pull request #654 from esep/prevent_nsee
Prevent NoSuchElementException from PagerSpliterator class
2 parents 7c0cf5e + d356278 commit a80780c

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/main/java/org/gitlab4j/api/PagerSpliterator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public boolean tryAdvance(Consumer<? super T> action) {
3030
return true;
3131
} else if (pager.hasNext()) {
3232
elements = pager.next().iterator();
33-
action.accept(elements.next());
34-
return true;
33+
if(elements.hasNext()) {
34+
action.accept(elements.next());
35+
return true;
36+
}
3537
}
3638
return false;
3739
}

src/test/java/org/gitlab4j/api/PagerSpliteratorTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ public void shouldDoNotFailOnEmptySource() {
4646

4747
assertFalse(success);
4848
}
49+
50+
@Test
51+
public void shouldReturnFalseIfNextPagerItemMissing() {
52+
when(pager.hasNext()).thenReturn(true);
53+
when(pager.next()).thenReturn(Collections.emptyList());
54+
55+
boolean success = pagerSpliterator.tryAdvance(System.out::println);
56+
57+
assertFalse(success);
58+
}
4959

5060
@Test
5161
public void shouldThrowNullPointerExceptionWhenActionIsMissing() {
@@ -75,4 +85,4 @@ public void shouldAllowToGatherDataPageByPage() {
7585

7686
assertArrayEquals(new Integer[]{1, 2, 3, 4, 5}, elements);
7787
}
78-
}
88+
}

0 commit comments

Comments
 (0)