Backport COLLECTIONS-219 to 3.2.2

git-svn-id: 
https://svn.apache.org/repos/asf/commons/proper/collections/branches/COLLECTIONS_3_2_X@1713167
 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/e709ea82
Tree: http://git-wip-us.apache.org/repos/asf/commons-collections/tree/e709ea82
Diff: http://git-wip-us.apache.org/repos/asf/commons-collections/diff/e709ea82

Branch: refs/heads/COLLECTIONS_3_2_X
Commit: e709ea82aa3ead7468e7c2ebee85cd3a51d82061
Parents: 6e5ae53
Author: Thomas Neidhart <t...@apache.org>
Authored: Sat Nov 7 19:44:03 2015 +0000
Committer: Thomas Neidhart <t...@apache.org>
Committed: Sat Nov 7 19:44:03 2015 +0000

----------------------------------------------------------------------
 src/changes/changes.xml                         |  7 +-
 .../commons/collections/CollectionUtils.java    |  2 +-
 .../collections/TestCollectionUtils.java        | 68 +++++++++++++++++++-
 3 files changed, 72 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-collections/blob/e709ea82/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b7289a9..a4d1492 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,6 +22,10 @@
   <body>
 
   <release version="3.2.2" date="20XX-XX-XX" description="This is a bugfix 
release.">
+
+    <action issue="COLLECTIONS-219" dev="scolebourne" type="fix" due-to="Tom 
Leccese">
+      "CollectionUtils#removeAll" wrongly called "ListUtils#retainAll".
+    </action>
   
   <!--  Bugfixes planned to backport from 4.0
   
@@ -94,9 +98,6 @@
       "MultiValueMap#put(Object, Object)" and "MultiValueMap#putAll(Object, 
Collection)"
       now correctly return if the map has changed by this operation.
     </action>
-    <action issue="COLLECTIONS-219" dev="scolebourne" type="fix" due-to="Tom 
Leccese">
-      "CollectionUtils#removeAll" wrongly called "ListUtils#retainAll".
-    </action>
     <action issue="COLLECTIONS-217" dev="scolebourne" type="fix" due-to="Matt 
Bishop">
       Calling "setValue(Object)" on any Entry returned by a "Flat3Map" will now
       correctly set the value for the current entry.

http://git-wip-us.apache.org/repos/asf/commons-collections/blob/e709ea82/src/java/org/apache/commons/collections/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/commons/collections/CollectionUtils.java 
b/src/java/org/apache/commons/collections/CollectionUtils.java
index 3b736b4..3abcd3d 100644
--- a/src/java/org/apache/commons/collections/CollectionUtils.java
+++ b/src/java/org/apache/commons/collections/CollectionUtils.java
@@ -1119,7 +1119,7 @@ public class CollectionUtils {
      * @since Commons Collections 3.2
      */
     public static Collection removeAll(Collection collection, Collection 
remove) {
-        return ListUtils.retainAll(collection, remove);
+        return ListUtils.removeAll(collection, remove);
     }
 
     //-----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/commons-collections/blob/e709ea82/src/test/org/apache/commons/collections/TestCollectionUtils.java
----------------------------------------------------------------------
diff --git a/src/test/org/apache/commons/collections/TestCollectionUtils.java 
b/src/test/org/apache/commons/collections/TestCollectionUtils.java
index 38f992e..86478dc 100644
--- a/src/test/org/apache/commons/collections/TestCollectionUtils.java
+++ b/src/test/org/apache/commons/collections/TestCollectionUtils.java
@@ -1239,7 +1239,73 @@ public class TestCollectionUtils extends TestCase {
         assertEquals(eltc,eltb);
     }
     
-     public void testTransformedCollection() {
+    // -----------------------------------------------------------------------
+
+    public void testRetainAll() {
+        final List base = new ArrayList();
+        base.add("A");
+        base.add("B");
+        base.add("C");
+        final List sub = new ArrayList();
+        sub.add("A");
+        sub.add("C");
+        sub.add("X");
+
+        final Collection result = CollectionUtils.retainAll(base, sub);
+        assertEquals(2, result.size());
+        assertEquals(true, result.contains("A"));
+        assertFalse(result.contains("B"));
+        assertEquals(true, result.contains("C"));
+        assertEquals(3, base.size());
+        assertEquals(true, base.contains("A"));
+        assertEquals(true, base.contains("B"));
+        assertEquals(true, base.contains("C"));
+        assertEquals(3, sub.size());
+        assertEquals(true, sub.contains("A"));
+        assertEquals(true, sub.contains("C"));
+        assertEquals(true, sub.contains("X"));
+
+        try {
+            CollectionUtils.retainAll(null, null);
+            fail("expecting NullPointerException");
+        } catch (final NullPointerException npe) {
+        } // this is what we want
+    }
+
+    public void testRemoveAll() {
+        final List base = new ArrayList();
+        base.add("A");
+        base.add("B");
+        base.add("C");
+        final List sub = new ArrayList();
+        sub.add("A");
+        sub.add("C");
+        sub.add("X");
+
+        final Collection result = CollectionUtils.removeAll(base, sub);
+        assertEquals(1, result.size());
+        assertFalse(result.contains("A"));
+        assertEquals(true, result.contains("B"));
+        assertFalse(result.contains("C"));
+        assertEquals(3, base.size());
+        assertEquals(true, base.contains("A"));
+        assertEquals(true, base.contains("B"));
+        assertEquals(true, base.contains("C"));
+        assertEquals(3, sub.size());
+        assertEquals(true, sub.contains("A"));
+        assertEquals(true, sub.contains("C"));
+        assertEquals(true, sub.contains("X"));
+
+        try {
+            CollectionUtils.removeAll(null, null);
+            fail("expecting NullPointerException");
+        } catch (final NullPointerException npe) {
+        } // this is what we want
+    }
+    
+    // -----------------------------------------------------------------------
+    
+    public void testTransformedCollection() {
         Transformer transformer = TransformerUtils.nopTransformer();
         Collection collection = 
             CollectionUtils.transformedCollection(new ArrayList(), 
transformer);

Reply via email to