From fe3a68261315fe864fb940cc796008d2e36507ca Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 19 Jun 2015 15:26:40 +0200 Subject: [PATCH] DATACMNS-713 - Disabled total adaption in PageImpl for empty pages. The newly introduced adaption of the total in PageImpl must only be applied if the page accessed is not empty. --- .../java/org/springframework/data/domain/PageImpl.java | 2 +- .../springframework/data/domain/PageImplUnitTests.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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)); + } }