branch develop updated (e50946c -> f54e169)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository nuiton-utils. See https://gitlab.nuiton.org/nuiton/nuiton-utils.git from e50946c fixes #4143: Update libs new f54e169 fixes #4142: PaginationParameter.fromFullList() procuce out of bound filtering when using order clauses The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit f54e169664e5af61b24decd89f48f8848666e3f0 Author: Eric Chatellier <chatellier@codelutin.com> Date: Tue Jan 31 18:20:05 2017 +0100 fixes #4142: PaginationParameter.fromFullList() procuce out of bound filtering when using order clauses Summary of changes: .../nuiton/util/pagination/PaginationParameter.java | 18 ++++++++++++++++-- .../org/nuiton/util/pagination/PaginationResult.java | 2 +- .../nuiton/util/pagination/PaginationResultTest.java | 18 +++++++++++++----- 3 files changed, 30 insertions(+), 8 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository nuiton-utils. See https://gitlab.nuiton.org/nuiton/nuiton-utils.git commit f54e169664e5af61b24decd89f48f8848666e3f0 Author: Eric Chatellier <chatellier@codelutin.com> Date: Tue Jan 31 18:20:05 2017 +0100 fixes #4142: PaginationParameter.fromFullList() procuce out of bound filtering when using order clauses --- .../nuiton/util/pagination/PaginationParameter.java | 18 ++++++++++++++++-- .../org/nuiton/util/pagination/PaginationResult.java | 2 +- .../nuiton/util/pagination/PaginationResultTest.java | 18 +++++++++++++----- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/nuiton/util/pagination/PaginationParameter.java b/src/main/java/org/nuiton/util/pagination/PaginationParameter.java index 9ab8416..62c1c65 100644 --- a/src/main/java/org/nuiton/util/pagination/PaginationParameter.java +++ b/src/main/java/org/nuiton/util/pagination/PaginationParameter.java @@ -4,7 +4,7 @@ package org.nuiton.util.pagination; * #%L * Nuiton Utils * %% - * Copyright (C) 2004 - 2014 CodeLutin + * Copyright (C) 2004 - 2017 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as @@ -42,9 +42,14 @@ public class PaginationParameter implements Serializable { private static final long serialVersionUID = 1L; /** + * All results. + */ + protected static final int ALL_PAGE_SIZE = -1; + + /** * An instance that represents a page of ALL elements */ - public static final PaginationParameter ALL = PaginationParameter.of(0, -1); + public static final PaginationParameter ALL = PaginationParameter.of(0, ALL_PAGE_SIZE); /** * 0-based page number @@ -245,6 +250,15 @@ public class PaginationParameter implements Serializable { } /** + * Test if pagination parameter is about all results range. + * + * @return {@code true} if pagination parameter is about all results range + */ + public boolean isAll() { + return pageSize == ALL_PAGE_SIZE; + } + + /** * Class used to build an instance of PaginationParameter. Use the {@link #build()} method to create the * {@link org.nuiton.util.pagination.PaginationParameter}. * diff --git a/src/main/java/org/nuiton/util/pagination/PaginationResult.java b/src/main/java/org/nuiton/util/pagination/PaginationResult.java index d46b9e3..75bf7f6 100644 --- a/src/main/java/org/nuiton/util/pagination/PaginationResult.java +++ b/src/main/java/org/nuiton/util/pagination/PaginationResult.java @@ -84,7 +84,7 @@ public class PaginationResult<O> implements Serializable { int startIndex = requestedPage.getStartIndex(); - if (PaginationParameter.ALL.equals(requestedPage)) { + if (requestedPage.isAll()) { // Full list requested, use the full list subList = fullList; } else if (startIndex >= fullList.size()) { diff --git a/src/test/java/org/nuiton/util/pagination/PaginationResultTest.java b/src/test/java/org/nuiton/util/pagination/PaginationResultTest.java index d41c6cf..3472313 100644 --- a/src/test/java/org/nuiton/util/pagination/PaginationResultTest.java +++ b/src/test/java/org/nuiton/util/pagination/PaginationResultTest.java @@ -4,7 +4,7 @@ package org.nuiton.util.pagination; * #%L * Nuiton Utils * %% - * Copyright (C) 2004 - 2014 CodeLutin + * Copyright (C) 2004 - 2017 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as @@ -22,15 +22,14 @@ package org.nuiton.util.pagination; * #L% */ -import java.util.Arrays; -import java.util.List; - import com.google.common.base.Function; +import com.google.common.collect.Lists; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import com.google.common.collect.Lists; +import java.util.Arrays; +import java.util.List; /** * @author Arnaud Thimel (Code Lutin) @@ -140,6 +139,15 @@ public class PaginationResultTest { } { + // All elements + PaginationParameter all = PaginationParameter.of(0, -1, "name", true); + PaginationResult<String> page = PaginationResult.fromFullList(list, all); + Assert.assertEquals(22, page.getElements().size()); + Assert.assertEquals(22, page.getCount()); + Assert.assertEquals(PaginationParameter.of(0, -1, "name", true), page.getCurrentPage()); + } + + { PaginationResult<String> page = PaginationResult.fromFullList(list, PaginationParameter.of(0, 2)); Assert.assertEquals(2, page.getElements().size()); Assert.assertEquals(Arrays.asList("Lorem", "ipsum"), page.getElements()); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm