This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository nuiton-utils. See http://git.nuiton.org/nuiton-utils.git commit d496492d9b5ddcc21e29114772fcd5e99bf3447b Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 9 08:33:35 2015 +0100 Fix pages bound when page size is -1 (Fixes #3792) --- src/main/java/org/nuiton/util/PagerBeanUtil.java | 6 +++--- src/test/java/org/nuiton/util/PagerBeanUtilTest.java | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/nuiton/util/PagerBeanUtil.java b/src/main/java/org/nuiton/util/PagerBeanUtil.java index 7684648..48ed89b 100644 --- a/src/main/java/org/nuiton/util/PagerBeanUtil.java +++ b/src/main/java/org/nuiton/util/PagerBeanUtil.java @@ -68,10 +68,10 @@ public class PagerBeanUtil { int pageSize) { page = Math.max(page, 1); - pageSize = Math.max(pageSize, 1); + long pageSize2 = pageSize == -1 ? totalCount : Math.max(pageSize, 1); - long start = (page - 1l) * (long)pageSize; - long end = page * (long)pageSize; // End in subList is exclusive + long start = (page - 1l) * pageSize2; + long end = page * pageSize2; // End in subList is exclusive end = Math.min(end, totalCount); //To be sure that end will not be out of bound in subList diff --git a/src/test/java/org/nuiton/util/PagerBeanUtilTest.java b/src/test/java/org/nuiton/util/PagerBeanUtilTest.java index 42d4163..847bda6 100644 --- a/src/test/java/org/nuiton/util/PagerBeanUtilTest.java +++ b/src/test/java/org/nuiton/util/PagerBeanUtilTest.java @@ -46,6 +46,18 @@ public class PagerBeanUtilTest { } @Test + public void getPageBoundWithInfinityPageSize() throws Exception { + + Pair<Long, Long> actualBound; + + // page size is -1, get all content + long totalCount = (long) Integer.MAX_VALUE * 2L; + actualBound = PagerBeanUtil.getPageBound(totalCount, 1, -1); + Assert.assertEquals(Pair.of(0L, totalCount), actualBound); + + } + + @Test public void getTotalPage() throws Exception { long totalPage; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.