diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index 12a80f885..ef8e9f2cc 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -45,7 +45,7 @@ public class PageImpl extends Chunk implements Page { super(content, pageable); this.pageable = 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 ac3e76518..6365acd81 100644 --- a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java @@ -179,4 +179,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)); + } }