diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index cb6a296a9..71eece84d 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -17,6 +17,8 @@ package org.springframework.data.domain; import java.util.List; +import org.springframework.util.Assert; + /** * Basic {@code Page} implementation. * @@ -39,6 +41,9 @@ public class PageImpl extends Chunk implements Page { public PageImpl(List content, Pageable pageable, long total) { super(content, pageable); + + Assert.isTrue(total >= content.size(), "Total must not be less than the number of elements given!"); + this.total = total; } diff --git a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java index f754e5673..189af6cbc 100644 --- a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java @@ -126,4 +126,12 @@ public class PageImplUnitTests { assertThat(page.hasNext(), is(false)); assertThat(page.hasPrevious(), is(false)); } + + /** + * @see DATACMNS-615 + */ + @Test(expected = IllegalArgumentException.class) + public void rejectsTotalLessThanContentLength() { + new PageImpl(Arrays.asList("foo", "bar"), new PageRequest(0, 10), 1); + } }