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
This commit is contained in:
Thomas Neidhart 2015-11-07 19:44:03 +00:00
parent 6e5ae530b3
commit e709ea82aa
3 changed files with 72 additions and 5 deletions

View File

@ -22,6 +22,10 @@
<body> <body>
<release version="3.2.2" date="20XX-XX-XX" description="This is a bugfix release."> <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 <!-- Bugfixes planned to backport from 4.0
@ -94,9 +98,6 @@
"MultiValueMap#put(Object, Object)" and "MultiValueMap#putAll(Object, Collection)" "MultiValueMap#put(Object, Object)" and "MultiValueMap#putAll(Object, Collection)"
now correctly return if the map has changed by this operation. now correctly return if the map has changed by this operation.
</action> </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"> <action issue="COLLECTIONS-217" dev="scolebourne" type="fix" due-to="Matt Bishop">
Calling "setValue(Object)" on any Entry returned by a "Flat3Map" will now Calling "setValue(Object)" on any Entry returned by a "Flat3Map" will now
correctly set the value for the current entry. correctly set the value for the current entry.

View File

@ -1119,7 +1119,7 @@ public class CollectionUtils {
* @since Commons Collections 3.2 * @since Commons Collections 3.2
*/ */
public static Collection removeAll(Collection collection, Collection remove) { public static Collection removeAll(Collection collection, Collection remove) {
return ListUtils.retainAll(collection, remove); return ListUtils.removeAll(collection, remove);
} }
//----------------------------------------------------------------------- //-----------------------------------------------------------------------

View File

@ -1239,7 +1239,73 @@ public class TestCollectionUtils extends TestCase {
assertEquals(eltc,eltb); 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(); Transformer transformer = TransformerUtils.nopTransformer();
Collection collection = Collection collection =
CollectionUtils.transformedCollection(new ArrayList(), transformer); CollectionUtils.transformedCollection(new ArrayList(), transformer);