You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ch...@apache.org on 2017/07/11 17:54:38 UTC
[26/34] commons-collections git commit: PR: COLLECTIONS-360 Prevent
an NPE in FilterListIterator.next() and FilterListIterator.previous()
PR: COLLECTIONS-360
Prevent an NPE in FilterListIterator.next() and FilterListIterator.previous()
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/collections/branches/COLLECTIONS_3_2_BRANCH@1076034 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/commons-collections/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-collections/commit/f4a6f213
Tree: http://git-wip-us.apache.org/repos/asf/commons-collections/tree/f4a6f213
Diff: http://git-wip-us.apache.org/repos/asf/commons-collections/diff/f4a6f213
Branch: refs/heads/COLLECTIONS_3_2_BRANCH
Commit: f4a6f21360811bde57d9abfdae928f522b803897
Parents: dabecd2
Author: Jochen Wiedmann <jo...@apache.org>
Authored: Tue Mar 1 22:10:10 2011 +0000
Committer: Jochen Wiedmann <jo...@apache.org>
Committed: Tue Mar 1 22:10:10 2011 +0000
----------------------------------------------------------------------
pom.xml | 3 +++
.../collections/iterators/FilterListIterator.java | 7 +++++++
.../iterators/TestFilterListIterator.java | 15 +++++++++++++++
3 files changed, 25 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-collections/blob/f4a6f213/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4a71e6a..5c4a6d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -364,6 +364,9 @@
<name>Serhiy Yevtushenko</name>
</contributor>
<contributor>
+ <name>Sai Zhang</name>
+ </contributor>
+ <contributor>
<name>Jason van Zyl</name>
</contributor>
</contributors>
http://git-wip-us.apache.org/repos/asf/commons-collections/blob/f4a6f213/src/java/org/apache/commons/collections/iterators/FilterListIterator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/commons/collections/iterators/FilterListIterator.java b/src/java/org/apache/commons/collections/iterators/FilterListIterator.java
index 26b29e1..5e36118 100644
--- a/src/java/org/apache/commons/collections/iterators/FilterListIterator.java
+++ b/src/java/org/apache/commons/collections/iterators/FilterListIterator.java
@@ -236,6 +236,10 @@ public class FilterListIterator implements ListIterator {
}
}
+ if (iterator == null) {
+ return false;
+ }
+
while(iterator.hasNext()) {
Object object = iterator.next();
if(predicate.evaluate(object)) {
@@ -266,6 +270,9 @@ public class FilterListIterator implements ListIterator {
}
}
+ if (iterator == null) {
+ return false;
+ }
while(iterator.hasPrevious()) {
Object object = iterator.previous();
if(predicate.evaluate(object)) {
http://git-wip-us.apache.org/repos/asf/commons-collections/blob/f4a6f213/src/test/org/apache/commons/collections/iterators/TestFilterListIterator.java
----------------------------------------------------------------------
diff --git a/src/test/org/apache/commons/collections/iterators/TestFilterListIterator.java b/src/test/org/apache/commons/collections/iterators/TestFilterListIterator.java
index fcf45f8..ab9dffe 100644
--- a/src/test/org/apache/commons/collections/iterators/TestFilterListIterator.java
+++ b/src/test/org/apache/commons/collections/iterators/TestFilterListIterator.java
@@ -21,11 +21,14 @@ import java.util.List;
import java.util.ListIterator;
import java.util.Random;
+import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections.PredicateUtils;
+import org.apache.commons.collections.list.GrowthList;
/**
* Tests the FilterListIterator class.
@@ -289,6 +292,18 @@ public class TestFilterListIterator extends TestCase {
assertEquals(expected.previous(),filtered.previous());
}
+ /**
+ * Test for {@link https://issues.apache.org/jira/browse/COLLECTIONS-360 COLLECTIONS-360}.
+ */
+ public void testCollections360() throws Throwable {
+ GrowthList var7 = new GrowthList();
+ Predicate var9 = PredicateUtils.anyPredicate((java.util.Collection)var7);
+ FilterListIterator var13 = new FilterListIterator(var9);
+ Assert.assertFalse(var13.hasNext());
+ org.apache.commons.collections.iterators.FilterListIterator var14 = new org.apache.commons.collections.iterators.FilterListIterator(var9);
+ Assert.assertFalse(var14.hasPrevious());
+ }
+
// Utilities
private void walkForward(ListIterator expected, ListIterator testing) {