From d6c94d64b39f6affda6e88b8fc9303a5ed407c87 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Wed, 13 Nov 2019 12:49:19 +0100 Subject: [PATCH] DATACMNS-1613 - Fixed Chunk.getSize() for usage with an unpaged Pageable. We now return the content length as size of a Chunk if no Pageable has been used to create a Chunk. This makes the usage of a Chunk without an explicit Pageable work just like it was requested with the size of the given content. --- .../java/org/springframework/data/domain/Chunk.java | 2 +- .../data/domain/PageImplUnitTests.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/domain/Chunk.java b/src/main/java/org/springframework/data/domain/Chunk.java index d1397ca73..8bd7f8c18 100644 --- a/src/main/java/org/springframework/data/domain/Chunk.java +++ b/src/main/java/org/springframework/data/domain/Chunk.java @@ -70,7 +70,7 @@ abstract class Chunk implements Slice, Serializable { * @see org.springframework.data.domain.Slice#getSize() */ public int getSize() { - return pageable.isPaged() ? pageable.getPageSize() : 0; + return pageable.isPaged() ? pageable.getPageSize() : content.size(); } /* diff --git a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java index ae026c4ed..60c98ffbb 100755 --- a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java @@ -161,4 +161,15 @@ public class PageImplUnitTests { assertThat(new PageImpl<>(Collections. emptyList(), PageRequest.of(1, 10), 0).getTotalElements()) .isEqualTo(0L); } + + @Test // DATACMNS-1613 + public void usesContentLengthForSizeIfNoPageableGiven() { + + Page page = new PageImpl<>(Arrays.asList(1, 2)); + + assertThat(page.getSize()).isEqualTo(2); + assertThat(page.getTotalPages()).isEqualTo(1); + assertThat(page.hasPrevious()).isFalse(); + assertThat(page.hasNext()).isFalse(); + } }