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) {