diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index 2a5bce948..7658b6f06 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -41,7 +41,7 @@ public class PageImpl extends Chunk implements Page { super(content, pageable); - this.total = pageable != null && pageable.getOffset() + pageable.getPageSize() > total + this.total = !content.isEmpty() && pageable != null && pageable.getOffset() + pageable.getPageSize() > total ? pageable.getOffset() + content.size() : total; } diff --git a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java index fedba4974..dd0ec1a8b 100644 --- a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java @@ -160,4 +160,14 @@ public class PageImplUnitTests { assertThat(new PageImpl(Arrays.asList("foo", "bar"), new PageRequest(1, 10), 11).getTotalElements(), is(12L)); } + + /** + * @see DATACMNS-713 + */ + @Test + public void doesNotAdapttotalIfPageIsEmpty() { + + assertThat(new PageImpl(Collections. emptyList(), new PageRequest(1, 10), 0).getTotalElements(), + is(0L)); + } }