Skip to content

Commit 8ec01cb

Browse files
mp911deschauder
authored andcommitted
Fix spliterator size hint in CloseableIterator.spliterator().
We now report -1 as size to avoid zero-size results for count() or toList() operators. Closes #2519
1 parent a56ef01 commit 8ec01cb

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

Diff for: src/test/java/org/springframework/data/util/CloseableIteratorUnitTests.java

+16-6
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class CloseableIteratorUnitTests {
3434
@Test // DATACMNS-1637
3535
void shouldCreateStream() {
3636

37-
var iterator = new CloseableIteratorImpl<String>(Arrays.asList("1", "2", "3").iterator());
37+
var iterator = new CloseableIteratorImpl<>(Arrays.asList("1", "2", "3").iterator());
3838

3939
var collection = iterator.stream().map(it -> "hello " + it).collect(Collectors.toList());
4040

@@ -45,27 +45,37 @@ void shouldCreateStream() {
4545
@Test // GH-2519
4646
void shouldCount() {
4747

48-
CloseableIteratorImpl<String> iterator = new CloseableIteratorImpl<>(Arrays.asList("1", "2", "3").iterator());
48+
var iterator = new CloseableIteratorImpl<>(Arrays.asList("1", "2", "3").iterator());
4949

50-
long count = iterator.stream().count();
50+
var count = iterator.stream().count();
5151

5252
assertThat(count).isEqualTo(3);
5353
}
5454

5555
@Test // GH-2519
5656
void shouldCountLargeStream() {
5757

58-
CloseableIteratorImpl<Integer> iterator = new CloseableIteratorImpl<>(IntStream.range(0, 2048).boxed().iterator());
58+
var iterator = new CloseableIteratorImpl<>(IntStream.range(0, 2048).boxed().iterator());
5959

60-
long count = iterator.stream().count();
60+
var count = iterator.stream().count();
6161

6262
assertThat(count).isEqualTo(2048);
6363
}
6464

65+
@Test // GH-2519
66+
void shouldApplyToList() {
67+
68+
var iterator = new CloseableIteratorImpl<>(Arrays.asList("1", "2", "3").iterator());
69+
70+
var list = iterator.stream().toList();
71+
72+
assertThat(list).isEqualTo(Arrays.asList("1", "2", "3"));
73+
}
74+
6575
@Test // DATACMNS-1637
6676
void closeStreamShouldCloseIterator() {
6777

68-
var iterator = new CloseableIteratorImpl<String>(Arrays.asList("1", "2", "3").iterator());
78+
var iterator = new CloseableIteratorImpl<>(Arrays.asList("1", "2", "3").iterator());
6979

7080
try (var stream = iterator.stream()) {
7181
assertThat(stream.findFirst()).hasValue("1");

0 commit comments

Comments
 (0)