http://git-wip-us.apache.org/repos/asf/commons-collections/blob/96eddd6a/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 85f0f96..4a34df5 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,913 +1,916 @@
-<?xml version="1.0"?>
-<!--
-     Licensed to the Apache Software Foundation (ASF) under one or more
-     contributor license agreements.  See the NOTICE file distributed with
-     this work for additional information regarding copyright ownership.
-     The ASF licenses this file to You under the Apache License, Version 2.0
-     (the "License"); you may not use this file except in compliance with
-     the License.  You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
-  -->
-<document>
-  <properties>
-    <title>Commons Collections Changes</title>
-  </properties>
-  <body>
-  <release version="4.2" date="2018-MM-DD" description="Update from Java 6 to 
Java 7, bug fixes, and small changes.">
-    <action issue="COLLECTIONS-599" dev="ggregory" type="fix" due-to="Tejas 
Patel, Saleem Akbar, Gary Gregory">
-      HashEntry array object naming data initialized with double the size 
during deserialization.
-    </action>
-    <action issue="COLLECTIONS-662" dev="chtompki" type="fix" due-to="Vamsi 
Kavuri">
-      Unit tests MapUtilsTest and ListIteratorWrapperTest no longer fail on 
Java 9.
-    </action>
-    <action issue="COLLECTIONS-661" dev="kinow" type="fix">
-      Intermittent test failures in Windows for HashSetValuedHashMap.
-    </action>
-    <action issue="COLLECTIONS-660" dev="kinow" type="fix">
-      Uncomment test in AbstractMapTest regarding LRUMap equals.
-    </action>
-    <action issue="COLLECTIONS-658" dev="britter" type="add">
-      Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility.
-    </action>
-    <action issue="COLLECTIONS-656" dev="ggregory" type="fix">
-      Fix site build on Java 8.
-    </action>
-    <action issue="COLLECTIONS-653" dev="kinow" type="fix">
-      Update Javadoc to Build on Java 1.8.
-    </action>
-    <action issue="COLLECTIONS-606" dev="chtompki" type="fix" due-to="Vamsi 
Kavuri">
-      Build status, Coverage status and Maven central weren't in README.md
-    </action>
-    <action issue="COLLECTIONS-602" dev="kinow" type="update" due-to="John 
Mark">
-      Improve efficiency of DefaultedMap.get.
-    </action>
-    <action issue="COLLECTIONS-603" dev="kinow" type="update" due-to="Artem 
Konovalov">
-      Small improvements for generics, conditional statements, and warnings 
suppressions.
-    </action>
-    <action issue="COLLECTIONS-655" dev="ggregory" type="update">
-      Update platform from Java 6 to Java 7.
-    </action>
-    <action issue="COLLECTIONS-594" dev="ggregory" type="fix" due-to="Javen 
O'Neal">
-      Web site spelling error: MultiValuedMapeList.
-    </action>
-    <action issue="COLLECTIONS-597" dev="ggregory" type="fix" due-to="Enrique">
-       Correction of Javadoc for 
org.apache.commons.collections4.functors.CatchAndRethrowClosure.
-    </action>
-    <action issue="COLLECTIONS-589" dev="ggregory" type="add" due-to="Gary 
Gregory">
-      Add null-safe MapUtils.size(Map&lt;?, ?>) method.
-    </action>
-    <action issue="COLLECTIONS-586" dev="ggregory" type="add" 
due-to="Shailender Bathula, Gary Gregory">
-      PatriciaTrie prefixMap clear throws NullPointerException.
-    </action>
-    <action issue="COLLECTIONS-654" dev="ggregory" type="add">
-      Add class SortedProperties to sort keys.
-    </action>
-    <action issue="COLLECTIONS-666" dev="ggregory" type="update" 
due-to="BELUGA BEHR">
-      org.apache.commons.collections4.ListUtils.union(List, List) should 
pre-allocate result list.
-    </action>
-    <action issue="COLLECTIONS-669" dev="ggregory" type="update" 
due-to="BELUGA BEHR, Gary Gregory">
-      Update 
org.apache.commons.collections4.CollectionUtils.addAll(Collection&lt;C>, C[]) 
to addAll(Collection&lt;C>, C...).
-    </action>
-    <action issue="COLLECTIONS-668" dev="ggregory" type="add" due-to="Gary 
Gregory">
-      Add CollectionUtils containsAny method for primitive array: 
org.apache.commons.collections4.CollectionUtils.containsAny(Collection&lt;?>, 
T...).
-    </action>
-    <action issue="COLLECTIONS-575" dev="ggregory" type="add" due-to="Guram 
Savinov, Grzegorz Rożniecki, Bruno P. Kinoshita, Gary Gregory">
-      Synchronized queue wrapper in QueueUtils.
-    </action>
-    <action issue="COLLECTIONS-670" dev="ggregory" type="add" due-to="Gary 
Gregory">
-      Add org.apache.commons.collections4.IteratorUtils.first(Iterator).
-    </action>
-    <action issue="COLLECTIONS-671" dev="ggregory" type="add" due-to="Gary 
Gregory">
-      Add org.apache.commons.collections4.IterableUtils.first(Iterable).
-    </action>
-  </release>
-  <release version="4.1" date="2015-11-28" description="This is a security and 
minor release.">
-    <action issue="COLLECTIONS-508" dev="tn" type="add">
-      Added new interfaces "MultiValuedMap", "ListValuedMap" and "SetValuedMap"
-      as a replacement for "MultiMap". Decorators and implementations reside in
-      the "multimap" package and a "MultiMapUtils" class has been added.
-      The existing interface "MultiMap" as well as the concrete implementation
-      "MultiValueMap" has been deprecated.
-    </action>
-    <action issue="COLLECTIONS-551" dev="tn" type="update">
-      Deprecated various method in "CollectionUtils" in favor of similar
-      methods in the newly introduced "IterableUtils".
-    </action>
-    <action issue="COLLECTIONS-580" dev="tn" type="update">
-      Serialization support for unsafe classes in the functor package
-      has been removed as this can be exploited for remote code execution
-      attacks. Classes considered to be unsafe are: CloneTransformer,
-      ForClosure, InstantiateFactory, InstantiateTransformer, 
InvokerTransformer,
-      PrototypeCloneFactory, PrototypeSerializationFactory, WhileClosure.
-    </action>
-    <action issue="COLLECTIONS-580" dev="tn" type="fix">
-      Added validation when de-serializing a "MultiValueMap#ReflectionFactory":
-      only Collection classes are allowed, otherwise an 
UnsupportedOperationException
-      will be thrown during de-serialization.
-    </action>
-    <action issue="COLLECTIONS-567" dev="tn" type="add">
-      Added new MultiSet interface which is intended to be a replacement for
-      the Bag interface. The main difference is that a MultiSet is fully 
compatible
-      to the Collection contract.
-    </action>
-    <action issue="COLLECTIONS-576" dev="tn" type="fix" due-to="Stephan Roch">
-      Subclasses of MultiKey did not re-calculate their hashcode after 
de-serialization.
-    </action>
-    <action issue="COLLECTIONS-572" dev="tn" type="add">
-      Added set operations to "SetUtils": union, difference, intersection and 
disjunction.
-      The operations return a view of the result that is backed by the input 
sets.
-    </action>
-    <action issue="COLLECTIONS-570" dev="tn" type="update">
-      All constructors and static factory methods will now throw a 
"NullPointerException" if
-      a required input argument is null. Previously sometimes a 
"IllegalArgumentException" was used.
-    </action>
-    <action issue="COLLECTIONS-571" dev="tn" type="update">
-      Deprecated methods "synchronizedCollection(Collection)" and 
"unmodifiableCollection(Collection)"
-      in class "CollectionUtils", the corresponding methods in 
"java.util.Collections" should be used instead.
-    </action>
-    <action issue="COLLECTIONS-566" dev="tn" type="fix">
-      "IteratorUtils#collate(...)" methods did not use natural ordering when a
-      null comparator was provided.
-    </action>
-    <action issue="COLLECTIONS-557" dev="tn" type="add" due-to="Philippe 
Mouawad">
-      Added support to specify the initial size of a "LRUMap".
-    </action>
-    <action issue="COLLECTIONS-565" dev="tn" type="add">
-      Added decorators for "NavigableSet" interface.
-    </action>
-    <action issue="COLLECTIONS-464,COLLECTIONS-442" dev="tn" type="add">
-      Added new class "FluentIterable" to support a fluent API for manipulating
-      Iterable instances. Additionally various supporting methods have been
-      added to "IterableUtils" and "IteratorUtils".
-    </action>
-    <action issue="COLLECTIONS-464" dev="tn" type="add">
-      Added new "ZippingIterator" and factory methods 
"IteratorUtils#zippingIterator(...)".
-    </action>
-    <action issue="COLLECTIONS-464" dev="tn" type="add">
-      Added new decorator "SkippingIterator" and factory methods 
"IteratorUtils#skippingIterator(...)".
-    </action>
-    <action issue="COLLECTIONS-556" dev="tn" type="add">
-      Added method "SetUtils#newIdentityHashSet()" which returns a new 
identity HashSet
-      using reference-equality instead of object-equality.
-    </action>
-    <action issue="COLLECTIONS-562" dev="tn" type="update">
-      Upgraded minimum java requirement to Java 6 (up from Java 5).
-    </action>
-    <action issue="COLLECTIONS-395" dev="tn" type="add" due-to="David 
Hawthorne">
-      Added method "LRUMap#get(Object, boolean)" that allows to query the map
-      without affecting the least recently used order.
-    </action>
-    <action issue="COLLECTIONS-558" dev="tn" type="fix" due-to="Felix Rabe">
-      Changed return type of "ListOrderedSet#remove(int)" from Object to the 
generic type parameter.
-    </action>
-    <action issue="COLLECTIONS-555" dev="tn" type="fix" due-to="M Kim">
-      Added clarification to javadoc of "TreeBag#add(Object)" wrt null 
arguments.
-    </action>
-    <action issue="COLLECTIONS-427" dev="tn" type="add" due-to="Gonçalo 
Marques">
-      Added "toString(...)" methods to newly created "IterableUtils" and 
existing "IteratorUtils"
-      to get a string representation of an Iterable/Iterator instance similar 
to "Arrays#toString(...)".
-    </action>
-    <action issue="COLLECTIONS-427" dev="tn" type="fix">
-      Reverted performance improvement for 
"SetUniqueList#retainAll(Collection)"
-      introduced in 4.0. Added clarifying javadoc wrt runtime complexity 
instead.
-    </action>
-    <action issue="COLLECTIONS-426" dev="tn" type="fix">
-      Reverted performance improvement for 
"ListOrderedSet#retainAll(Collection)"
-      introduced in 4.0. Added clarifying javadoc wrt runtime complexity 
instead.
-    </action>
-    <action issue="COLLECTIONS-530" dev="tn" type="fix" due-to="Erik">
-      Added a Builder for "PredicatedCollection". Elements added to the builder
-      that fail the predicate will not throw an IllegalArgumentException. The 
builder
-      supports creating predicated lists, bags, sets and queues.
-    </action>
-    <action issue="COLLECTIONS-545" dev="tn" type="fix" due-to="Oswaldo Olivo">
-      Documented runtime complexity of "CollectionUtils#removeAll(Collection, 
Collection).
-    </action>
-    <action issue="COLLECTIONS-543" dev="tn" type="fix">
-      "AbstractCollectionDecorator" doesn't forward equals and hashCode 
anymore.
-    </action>
-    <action issue="COLLECTIONS-544" dev="tn" type="fix" due-to="Oswaldo Olivo">
-      Documented runtime complexity of "CollectionUtils#retainAll(Collection, 
Collection).
-    </action>
-    <action issue="COLLECTIONS-542" dev="tn" type="fix">
-      "AbstractHashedMap" still inherits from "AbstractMap", contrary to what
-      the class javadoc stated. The inheritance will now be removed in v5.0.
-    </action>
-    <action issue="COLLECTIONS-539" dev="tn" type="add" due-to="Guram Savinov">
-      Changed scope of "CircularFifoQueue#isAtFullCapacity()" to public.
-    </action>
-    <action issue="COLLECTIONS-525" dev="tn" type="fix" due-to="Zigler Zhang">
-      The map returned by "PatriciaTrie#prefixMap()" did not contain all keys
-      that are prefixed by the given search key in some rare cases.
-    </action>
-    <action issue="COLLECTIONS-511" dev="tn" type="add" due-to="Nathan 
Blomquist, Brent Worden">
-      Added new methods "IterableUtils#partition(...)" to partition an input 
collection
-      into separate output collections based on evaluation of one or more 
predicates.
-    </action>
-    <action issue="COLLECTIONS-537" dev="tn" type="fix" due-to="Frank Jakop">
-      Harmonized signature of factory methods for functor-related classes 
which take
-      a collection as input with their array counterparts.
-    </action>
-    <action issue="COLLECTIONS-540" dev="tn" type="fix" due-to="Daniel 
Stewart, Issam El Atif">
-      Added overloaded method "CollectionUtils#get(Enumeration, int)" and 
simplified
-      code for "CollectionUtils#get(Object, int)".
-    </action>
-    <action issue="COLLECTIONS-536" dev="tn" type="fix" due-to="Tagir Valeev">
-      Improved check for null input in "MapUtils#putAll(Map, Object[])".
-    </action>
-    <action issue="COLLECTIONS-534" dev="tn" type="fix" due-to="Oswaldo Olivo">
-      Added clarifying javadoc wrt runtime complexity of 
"CollectionBag#retainAll".
-    </action>
-    <action issue="COLLECTIONS-529" dev="tn" type="add" due-to="Alexander 
Muthmann, Dipanjan Laha">
-      Added methods "removeAll(...)" and "retainAll(...)" to "CollectionUtils" 
that perform
-      equality checks using the provided "Equator" object instead of 
"Object#equals()".
-    </action>
-    <action issue="COLLECTIONS-531" dev="tn" type="fix" due-to="Dipanjan Laha">
-      Use correct type bounds in
-      "CollectionUtils#isEqualCollection(Collection, Collection, Equator)" to
-      prevent a "ClassCastException" at runtime for invalid inputs.
-    </action>
-    <action issue="COLLECTIONS-523" dev="tn" type="fix" due-to="Thiago 
Andrade">
-      Removed unneeded private method in "PassiveExpiringMap".
-    </action>
-    <action issue="COLLECTIONS-516" dev="tn" type="fix" due-to="Cyrille Artho">
-      Added clarification to the javadoc of "MapUtils#toProperties(Map)" in 
case
-      of null keys/values.
-    </action>
-    <action issue="COLLECTIONS-524" dev="tn" type="fix" due-to="J Goodfellow">
-      "ListOrderedSet#listOrderedSet(List)" did not remove duplicates from the
-      input list as advertised in the javadoc.
-    </action>
-    <action issue="COLLECTIONS-521" dev="tn" type="fix" due-to="Maxime Nay">
-      "MultiKeyMap" was throwing a "NullPointerException" for various 
operations
-      if two key arguments have been used and the second was "null".
-    </action>
-    <action issue="COLLECTIONS-522" dev="tn" type="fix" due-to="Erik">
-      Updated code example for "PredicatedList".
-    </action>
-    <action issue="COLLECTIONS-512" dev="tn" type="fix" due-to="Cyrille Artho">
-      "TransformingComparator" and "FixedOrderComparator" did not comply with
-      the contract of "Object#equals".
-    </action>
-    <action issue="COLLECTIONS-510" dev="tn" type="fix" due-to="Hollis Waite">
-      Fix compilation errors when using source level 1.8 and a recent java 8 
compiler.
-    </action>
-    <action issue="COLLECTIONS-509" dev="tn" type="fix">
-      Clarified javadoc of "CollectionBag" wrt changes from the original Bag 
interface.
-    </action>
-    <action issue="COLLECTIONS-507" dev="tn" type="fix" due-to="Gerson">
-      Removed wrong type bounds for "ComparatorUtils#chainedComparator(...)".
-    </action>
-    <action issue="COLLECTIONS-506" dev="tn" type="fix" due-to="Anthony 
Communier">
-      Added javadoc clarification to class "CollectionUtils" that input 
objects which
-      override "Object#equals(Object)" must also maintain the general contract 
of
-      "Object#hashCode()" as various utility methods take advantage of 
sets/maps/bags.
-    </action>
-    <action issue="COLLECTIONS-503" dev="tn" type="add" due-to="Josh Cain">
-      Added new transformer "IfTransformer" and factory methods 
"TransformerUtils#ifTransformer(...)"
-      which replace "TransformerUtils#switchTransformer(Predicate, 
Transformer, Transformer)".
-    </action>
-    <action issue="COLLECTIONS-471" dev="tn" type="add" due-to="Radford Tam">
-      Added new decorator "BoundedIterator" and factory methods 
"IteratorUtils#boundedIterator(...)".
-    </action>
-  </release>
-  <release version="4.0" date="2013-11-27" description="
-This is a major release: It combines bug fixes, new features and
-changes to existing features.
-
-Most notable changes are: use of generics and other language features 
introduced in Java 5 (varargs, Iterable),
-removed deprecated classes / methods and features which are now supported by 
the JDK,
-replaced Buffer interface with java.util.Queue,
-added concept of split maps with respective interfaces Put / Get (see also 
package splitmap),
-added new Trie interface together with an implementation of a Patricia Trie.
-
-Because of the base package name change, this release can be used together
-with earlier versions of Commons Collections.
-The minimal version of the Java platform required to compile and use
-Commons Collections is Java 5.
-Users are encouraged to upgrade to this version as, in addition to new
-features, this release includes numerous bug fixes.
-  ">
-    <action issue="COLLECTIONS-502" dev="tn" type="update">
-      Resolved generic parameter inconsistency for various static fields, e.g. 
BagUtils.EMPTY_BAG,
-      TruePredicate.INSTANCE and many others. All accessible static fields use 
raw types so that
-      they can be used directly without explicit casting. To avoid compiler 
warnings about unchecked
-      conversion and/or rawtypes use the corresponding factory methods, e.g. 
BagUtils.emptyBag().
-    </action>
-    <action issue="COLLECTIONS-501" dev="tn" type="update">
-      Renamed methods "V MultiKeyMap#remove(Object, Object, ...)" to
-      "V MultiKeyMap#removeMultiKey(Object, Object, ...)" to avoid future 
conflicts
-      with a default method of the Map interface in Java 8.
-    </action>
-    <action issue="COLLECTIONS-500" dev="tn" type="update">
-      Renamed "V MultiMap#remove(K, V)" to "boolean MultiMap#removeMapping(K, 
V)"
-      to avoid future conflicts with a default method of the Map interface in 
Java 8.
-    </action>
-    <action issue="COLLECTIONS-499" dev="tn" type="update">
-      Refactored the test framework for Bag implementations to extend from
-      "AbstractCollectionTest" by decorating the concrete Bag instance with
-      a CollectionBag or CollectionSortedBag.
-    </action>
-    <action issue="COLLECTIONS-498" dev="tn" type="fix">
-      "CollectionBag" will now also respect the contract of the decorated bag 
in case
-      a null argument is provided to either removeAll or retainAll.
-    </action>
-    <action issue="COLLECTIONS-497" dev="tn" type="add">
-      Added bag decorator "CollectionSortedBag" which decorates a SortedBag to 
make it
-      comply with the Collection contract.
-    </action>
-    <action issue="COLLECTIONS-496" dev="tn" type="update">
-      "UnmodifiableBoundedCollection" does now also implement the marker 
interface "Unmodifiable"
-      similar as all other unmodifiable decorators.
-    </action>
-    <action issue="COLLECTIONS-495" dev="tn" type="fix">
-      "UnmodifiableTrie#unmodifiableTrie(Trie)" will not decorate again an 
already
-      unmodifiable Trie. Also the return type has been changed to "Trie" to be 
consistent
-      with other Unmodifiable decorators.
-    </action>
-    <action issue="COLLECTIONS-494" dev="tn" type="update" due-to="Emmanuel 
Bourg">
-      Moved "Equator" interface to base package for consistency.
-    </action>
-    <action issue="COLLECTIONS-488" dev="tn" type="add" due-to="Josh Cain">
-      Added "CollectionsUtils#matchesAll(Iterable, Predicate)" to test if all 
elements
-      of a collection match a given predicate.
-    </action>
-    <action issue="COLLECTIONS-485" dev="tn" type="fix" due-to="Hollis Waite">
-      Accept wildcard input where possible, e.g. in copy-constructors, 
Unmodifiable* decorators
-      and iterators.
-    </action>
-    <action issue="COLLECTIONS-481" dev="tn" type="fix" due-to="Hollis Waite">
-      No collision detection/resolution was performed when calling 
"CompositeSet#addComposited(...)"
-      with more than one Set as argument. Additionally use varargs parameters 
instead of arrays
-      in CompositeSet and CompositeCollection constructor and addComposited 
method.
-    </action>
-    <action issue="COLLECTIONS-480" dev="tn" type="update" due-to="Hollis 
Waite">
-      Narrow return type of "BidiMap#values()" to Set as the values are 
required to be unique.
-    </action>
-    <action issue="COLLECTIONS-475" dev="tn" type="fix">
-      Fixed conversion of timeout parameters in "PassiveExpiringMap".
-    </action>
-    <action issue="COLLECTIONS-474" dev="sebb" type="fix" due-to="Ning Chen">
-      Exception in "ListOrderedMap#putAll" if map contains null values.
-    </action>
-    <action issue="COLLECTIONS-473" dev="tn" type="update" due-to="sebb">
-      Made field "collection" in class "AbstractCollectionDecorator" private 
and added
-      setter "setCollection(Collection)" with scope protected to set the 
decorated collection
-      during de-serialization.
-    </action>
-    <action issue="COLLECTIONS-472" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "AbstractMapBag#containsAll(Collection)" by 
returning immediately
-      after a difference has been found.
-    </action>
-    <action issue="COLLECTIONS-470" dev="tn" type="update" due-to="sebb">
-      Renamed class "TransformedMap" in package "splitmap" to 
"TransformedSplitMap" to avoid
-      name clash with similar class in package "map".
-    </action>
-    <action issue="COLLECTIONS-468" dev="tn" type="add">
-      Added bag decorator "CollectionBag" which decorates a bag to make it 
comply with the
-      Collection contract.
-    </action>
-    <action issue="COLLECTIONS-466" dev="tn" type="update">
-      Replaced "Collection" with "Iterable" for method arguments where 
applicable.
-    </action>
-    <action issue="COLLECTIONS-463" dev="tn" type="add" due-to="Andy Seaborne, 
Claude Warren">
-      Added "PushbackIterator" decorator to support pushback of elements 
during iteration.
-    </action>
-    <action issue="COLLECTIONS-462" dev="tn" type="add" due-to="Andy Seaborne, 
Claude Warren">
-      Added "PeekingIterator" decorator to support one-element lookahead 
during iteration.
-    </action>
-    <action issue="COLLECTIONS-461" dev="tn" type="fix" due-to="Matt Benson, 
sebb">
-      Added additional clarification to javadoc of interface "Put" wrt return 
type of
-      "put(Object, Object)" method.
-    </action>
-    <action issue="COLLECTIONS-460" dev="tn" type="update">
-      Changed "IteratorChain" to use internally a "Queue" instead of a "List". 
Iterators are
-      removed from the queue once used and can be garbage collected after 
being exhausted.
-      Additionally removed the methods "setIterator(Iterator)" and 
"getIterators()".
-    </action>
-    <action issue="COLLECTIONS-459" dev="tn" type="update" due-to="sebb">
-      Removed method "setArray(Object)" in class ArrayIterator and method 
"setArray(Object[])"
-      in class ObjectArrayIterator and made fields array, startIndex and 
endIndex final.
-    </action>
-    <action issue="COLLECTIONS-458" dev="sebb" type="remove">
-      Removed unused class "AbstractUntypedCollectionDecorator&lt;E, D&gt;".
-    </action>
-    <action issue="COLLECTIONS-456" dev="tn" type="add">
-      Added methods "ListUtils#longestCommonSubsequence(...)" to get the 
longest common subsequence
-      of arbitrary lists or CharSequences.
-    </action>
-    <action issue="COLLECTIONS-455" dev="sebb" type="update">
-      Changed scope of fields to private where appropriate.
-    </action>
-    <action issue="COLLECTIONS-454" dev="tn" type="update">
-      An iterator over a "Flat3Map#entrySet()" will now return
-      independent Map.Entry objects that will not change anymore when
-      the iterator progresses.
-    </action>
-    <action issue="COLLECTIONS-453" dev="tn" type="update">
-      Several closure and transformer implementations in the functors package
-      will now copy an array as input to their constructor (e.g. 
ChainedClosure).
-    </action>
-    <action issue="COLLECTIONS-452" dev="tn" type="update">
-      Change base package to org.apache.commons.collections4.
-    </action>
-    <action issue="COLLECTIONS-451" dev="tn" type="update">
-      The constructors for all Utils classes are now private to prevent 
instantiation.
-    </action>
-    <action issue="COLLECTIONS-450" dev="tn" type="add" due-to="J. Moldawski">
-      Added methods "forAllButLastDo(Collection, Closure)" and 
"forAllButLastDo(Iterator, Closure)"
-      to class "CollectionUtils".
-    </action>
-    <action issue="COLLECTIONS-447" dev="tn" type="fix" due-to="Jeffrey 
Barnes">
-      Tree traversal with a TreeListIterator will not be affected anymore by
-      the removal of an element directly after a call to previous().
-    </action>
-    <action issue="COLLECTIONS-446" dev="tn" type="add" due-to="Matt Lachman">
-      Added method "CollectionUtils#isEqualCollection(Collection, Collection, 
Equator)".
-    </action>
-    <action issue="COLLECTIONS-445" dev="tn" type="fix">
-      Adapt and/or ignore several unit tests when run on a IBM J9 VM 
(specification version 1.6.0)
-      due to a faulty "java.util.TreeMap" implementation.
-    </action>
-    <action issue="COLLECTIONS-444" dev="tn" type="fix" due-to="Thomas Vahrst, 
John Vasileff">
-      SetUniqueList.set(int, E) now works correctly if the object to be 
inserted
-      is already placed at the given position.
-    </action>
-    <action issue="COLLECTIONS-441" dev="tn" type="fix" due-to="Thomas Vahrst">
-      MultiKeyMap.clone() now correctly calls super.clone().
-    </action>
-    <action issue="COLLECTIONS-436" dev="tn" type="add" due-to="Arman Sharif">
-      Added "emptyIfNull" methods to classes "CollectionUtils", "ListUtils", 
"SetUtils"
-      and "MapUtils".
-    </action>
-    <action issue="COLLECTIONS-433" dev="tn" type="fix" due-to="Jeffrey 
Barnes">
-      Improve performance of "TreeList#addAll" and "TreeList(Collection)" by 
converting
-      the input collection into an AVL tree and efficiently merge it into the 
existing tree.
-    </action>
-    <action issue="COLLECTIONS-432" dev="tn" type="update">
-      Replaced "Buffer" interface with "java.util.Queue". Kept 
"CircularFifoQueue"
-      as well as "Predicated", "Transformed" and "Unmodifiable" decorators.
-    </action>
-    <action issue="COLLECTIONS-429,COLLECTIONS-434" dev="tn" type="add" 
due-to="Adrian Nistor, Mert Guldur">
-      Added method "CollectionUtils#containsAll(Collection, Collection)" with 
guaranteed
-      runtime complexity of O(n + m) and space complexity of O(n). This method 
may yield much
-      better performance than "Collection#containsAll(Collection)" depending 
on the use-case and
-      type of collection used.
-    </action>
-    <action issue="COLLECTIONS-427" dev="brentworden" type="fix" due-to="Mert 
Guldur">
-      Fixed performance issue in "SetUniqueList#retainAll" method for large 
collections.
-    </action>
-    <action issue="COLLECTIONS-426" dev="brentworden" type="fix" 
due-to="Adrian Nistor">
-      Fixed performance issue in "ListOrderedSet#retainAll" method for large 
collections.
-    </action>
-    <action issue="COLLECTIONS-425" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "ListOrderedMap#remove(Object)" method.
-    </action>
-    <action issue="COLLECTIONS-424" dev="tn" type="update" due-to="Michael 
Pradel">
-      "CompositeSet" does not inherit from "CompositeCollection" anymore. The 
inner class
-      "SetMutator" has been updated accordingly.
-    </action>
-    <action issue="COLLECTIONS-422" dev="tn" type="add" due-to="Benoit Corne">
-      Added method "CollectionUtils#permutations(Collection)" and class 
"PermutationIterator"
-      to generate unordered permutations of a collection.
-    </action>
-    <action issue="COLLECTIONS-421" dev="tn" type="fix" due-to="Benedikt 
Ritter">
-      Update javadoc for "ListUtils#lazyList()" and 
"ListUtils#fixedSizeList()".
-    </action>
-    <action issue="COLLECTIONS-419" dev="tn" type="fix" due-to="Adrian Nistor">
-      Added clarifying javadoc wrt runtime complexity of 
"AbstractDualBidiMap#retainAll".
-    </action>
-    <action issue="COLLECTIONS-417" dev="tn" type="fix" due-to="Adrian Nistor">
-      Added clarifying javadoc wrt runtime complexity of 
"AbstractLinkedList#retainAll".
-    </action>
-    <action issue="COLLECTIONS-415" dev="tn" type="fix" due-to="Adrian Nistor">
-      Added clarifying javadoc wrt runtime complexity of 
"AbstractLinkedList#removeAll".
-    </action>
-    <action issue="COLLECTIONS-414" dev="tn" type="fix">
-      Fixed several compilation issues with older Java 1.6 compilers.
-    </action>
-    <action issue="COLLECTIONS-413" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "removeAll()" method for sets returned by 
"DualHashBidiMap#entrySet()".
-    </action>
-    <action issue="COLLECTIONS-412" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "CollectionUtils#subtract" methods.
-    </action>
-    <action issue="COLLECTIONS-411" dev="tn" type="fix" due-to="Adrian Nistor">
-      Fixed possible "IndexOutOfBoundsException" in "ListOrderedMap#putAll".
-    </action>
-    <action issue="COLLECTIONS-410" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "SetUniqueList#addAll" method.
-    </action>
-    <action issue="COLLECTIONS-409" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "ListOrderedSet#addAll" method.
-    </action>
-    <action issue="COLLECTIONS-408" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "SetUniqueList#removeAll".
-    </action>
-    <action issue="COLLECTIONS-407" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "ListOrderedSet#remove(Object)" in case the 
object is
-      not contained in the Set.
-    </action>
-    <action issue="COLLECTIONS-406" dev="tn" type="fix" due-to="Adrian Nistor">
-      Improved performance of "ListUtils#subtract" method.
-    </action>
-    <action issue="COLLECTIONS-405" dev="brentworden" type="add" due-to="Adam 
Dyga">
-      Added "ListUtils#select" and "ListUtils#selectRejected" methods.
-    </action>
-    <action issue="COLLECTIONS-404" dev="luc" type="add" due-to="Jordane 
Sarda">
-      Added an implementation of Eugene Myers difference algorithm in package
-      o.a.c.c.sequence.
-    </action>
-    <action issue="COLLECTIONS-400" dev="tn" type="fix" due-to="Shin Hwei Tan">
-      Added missing null check in "CollectionUtils#addIgnoreNull(Collection, 
Object)".
-    </action>
-    <action issue="COLLECTIONS-399" dev="tn" type="add" due-to="Sebb">
-      Added new method "get(int)" to "CircularFifoQueue".
-    </action>
-    <action issue="COLLECTIONS-396" dev="tn" type="add" due-to="Jeff 
Rodriguez">
-      Added "LazyIteratorChain" iterator.
-    </action>
-    <action issue="COLLECTIONS-393" dev="tn" type="add" due-to="Chris Shayan">
-      Added "ListUtils#partition" method to split a List into consecutive 
sublists.
-    </action>
-    <action issue="COLLECTIONS-391" dev="tn" type="fix" due-to="Shin Hwei Tan">
-      Fixed javadoc for "MapUtils#toProperties(Map)".
-    </action>
-    <action issue="COLLECTIONS-389" dev="tn" type="fix" due-to="Shin Hwei Tan">
-      Clarified javadoc for "TransformerUtils#mapTransformer" for null input.
-    </action>
-    <action issue="COLLECTIONS-388" dev="tn" type="fix" due-to="Shin Hwei Tan">
-      Clarified javadoc for "FactoryUtils#prototypeFactory" for null input.
-    </action>
-    <action issue="COLLECTIONS-384" dev="ggregory" type="fix" due-to="Shin 
Hwei Tan">
-      Fixed inconsistent javadoc for "MapUtils#synchronizedMap(Map)".
-    </action>
-    <action issue="COLLECTIONS-383" dev="tn" type="add" due-to="Adrian 
Cumiskey">
-      Added "CollectionUtils#forAllDo" implementation which takes an 
"Iterator" as input.
-    </action>
-    <action issue="COLLECTIONS-382" dev="tn" type="update" due-to="Olivier 
Lamy">
-      Change maven coordinates to "org.apache.commons.commons-collections4".
-    </action>
-    <action issue="COLLECTIONS-381" dev="sebb" type="update" due-to="Olivier 
Lamy">
-      Move the project structure to a standard maven layout.
-    </action>
-    <action issue="COLLECTIONS-380" dev="tn" type="fix" due-to="Dave Brosius">
-      Fixed infinite loop when calling 
"UnmodifiableBoundedCollection#unmodifiableBoundedCollection()".
-    </action>
-    <action issue="COLLECTIONS-379" dev="tn" type="fix" due-to="Shin Hwei Tan">
-      Fixed javadoc for several methods wrt expected NullPointerExceptions.
-    </action>
-    <action issue="COLLECTIONS-375" dev="tn" type="add" due-to="Ivan Hristov">
-      Added method "ListUtils#defaultIfNull(List, List)".
-    </action>
-    <action issue="COLLECTIONS-372" dev="tn" type="update">
-      TransformingComparator now supports different types for its input/output 
values.
-    </action>
-    <action issue="COLLECTIONS-364" dev="sebb" type="fix">
-      "DualTreeBidiMap" now uses the correct comparator for the reverse map 
during de-serialization.
-    </action>
-    <action issue="COLLECTIONS-363" dev="sebb" type="fix">
-      "TransformedMap" in the package "splitmap" can now be serialized.
-    </action>
-    <action issue="COLLECTIONS-362" dev="brentworden" type="update" 
due-to="Jean-Noel Rouvignac">
-      "CollectionUtils#filter(Iterable, Predicate)" will now return whether 
the collection
-      has been modified.
-    </action>
-    <action issue="COLLECTIONS-361" dev="tn" type="add" due-to="Jean-Noel 
Rouvignac">
-      Add method "CollectionUtils#filterInverse(Iterable, Predicate)".
-    </action>
-    <action issue="COLLECTIONS-360" dev="jochen" type="fix" due-to="Sai Zhang">
-      "FilterListIterator#hasNext" does not throw a NullPointerException 
anymore
-      to comply to the Java iterator specification.
-    </action>
-    <action issue="COLLECTIONS-359" dev="bayard" type="fix" due-to="Mark 
Shead">
-      "ListUtils#intersection(List, List)" will now also work correctly if 
there
-      are duplicate elements in the provided lists.
-    </action>
-    <action issue="COLLECTIONS-352" dev="bayard" type="fix" due-to="Adam Gent">
-      "AbstractCollectionDecorator" will now use internally "decorated()" to 
access
-      the decorated collection.
-    </action>
-    <action issue="COLLECTIONS-351" dev="bayard" type="remove" due-to="Henri 
Yandell">
-      Removed features which are now supported by the JDK.
-    </action>
-    <action issue="COLLECTIONS-350" dev="bayard" type="fix" due-to="Michael 
Akerman">
-      Removed debug output in "MapUtils#getNumber(Map)".
-    </action>
-    <action issue="COLLECTIONS-348" dev="brentworden" type="fix" due-to="Paul 
Benedict">
-      Fixed javadoc for all "transformedXXX(XXX)" methods in the respective 
Utils classes
-      to clarify that existing objects in the list are not transformed.
-    </action>
-    <action issue="COLLECTIONS-343" dev="mbenson" type="fix" due-to="Goran 
Hacek">
-      Singleton classes in package "functors" are now correctly de-serialized.
-    </action>
-    <action issue="COLLECTIONS-341" dev="mbenson" type="update" due-to="Goran 
Hacek">
-      "NOPClosure" is now a final class.
-    </action>
-    <action issue="COLLECTIONS-340" dev="mbenson" type="fix" due-to="Goran 
Hacek">
-      Removed broken methods "equals(Object)" and "hashCode()" in class 
"NOPClosure".
-    </action>
-    <action issue="COLLECTIONS-336" dev="bayard" type="fix" due-to="sebb">
-      Simplified exceptions as the cause is available from the parent.
-    </action>
-    <action issue="COLLECTIONS-335" dev="jochen" type="fix" due-to="sebb">
-      Fixed cache assignment for "TreeBidiMap#entrySet".
-    </action>
-    <action issue="COLLECTIONS-334" dev="jochen" type="fix" due-to="sebb">
-      Synchronized access to lock in "StaticBucketMap#size()".
-    </action>
-    <action issue="COLLECTIONS-332" dev="jochen" type="fix" due-to="Tom 
Parker">
-      Added clarification to javadoc of "ListOrderedMap" that "IdentityMap" and
-      "CaseInsensitiveMap" are not supported.
-    </action>
-    <action issue="COLLECTIONS-331" dev="jochen" type="fix" due-to="Michael 
Krkoska">
-      Improve javadoc of "CollatingIterator" wrt the used "Comparator" and 
throw a
-      NullPointerException in "CollatingIterator#least" if no comparator is 
set.
-    </action>
-    <action issue="COLLECTIONS-330" dev="mbenson" type="fix" due-to="Joerg 
Schaible">
-      "LRUMap#keySet()#remove(Object)" will not throw a 
"ConcurrentModificationException" anymore.
-    </action>
-    <action issue="COLLECTIONS-328" dev="bayard" type="fix" due-to="Thomas 
Rogan, Jilles van Gurp">
-      Improved performance of "ListUtils#intersection(List, List)".
-    </action>
-    <action issue="COLLECTIONS-327" dev="brentworden" type="add" due-to="sebb">
-      Added serialVersionUID fields for "CompositeCollection", "CompositeSet",
-      "EmptyMapMutator", "EmptySetMutator".
-    </action>
-    <action issue="COLLECTIONS-324" dev="tn" type="update" due-to="sebb">
-      Fields transformer and decorated in class "TransformingComparator" are 
now final.
-    </action>
-    <action issue="COLLECTIONS-323" dev="jochen" type="fix" due-to="Maarten 
Brak">
-      Changed behavior of "CaseInsensitiveMap" constructor to be compliant 
with "HashMap"
-      in case the initial capacity is set to zero.
-    </action>
-    <action issue="COLLECTIONS-322" dev="tn" type="add" due-to="Thomas Vahrst">
-      Added NodeListIterator and convenience methods in IteratorUtils to 
iterate over
-      a org.w3c.dom.NodeList.
-    </action>
-    <action issue="COLLECTIONS-320" dev="bayard" type="fix" due-to="sebb">
-      Improved performance of "StaticBucketMap#putAll(Map)" by iterating over 
the entry set.
-    </action>
-    <action issue="COLLECTIONS-319" dev="bayard" type="fix" due-to="sebb">
-      Avoid redundant null check in "IteratorUtils#getIterator(Object)".
-    </action>
-    <action issue="COLLECTIONS-317" dev="bayard" type="fix" due-to="sebb">
-      Use a private method to populate the object in "AbstractHashedMap(Map)".
-    </action>
-    <action issue="COLLECTIONS-316" dev="bayard" type="fix" due-to="ori">
-      Fixed javadoc of "LRUMap" wrt to the maxSize parameter of the 
constructor.
-    </action>
-    <action issue="COLLECTIONS-313" dev="brentworden" type="add" due-to="David 
J. M. Karlsen">
-      Added new abstract class "CatchAndRethrowClosure" that re-throws any 
checked exception
-      as unchecked "FunctorException".
-    </action>
-    <action issue="COLLECTIONS-312" dev="tn" type="fix" due-to="Peter Lawrey, 
Gary Gregory">
-      Use of final keyword where applicable, minor performance improvements by 
properly
-      initializing the capacity of newly created collections when known in 
advance.
-    </action>
-    <action issue="COLLECTIONS-307" dev="tn" type="update" due-to="Christian 
Semrau, Thomas Vahrst">
-      "SetUniqueList#subList()" will now return an unmodifiable list as 
changes to it
-      may invalidate the parent list.
-    </action>
-    <action issue="COLLECTIONS-307" dev="bayard" type="fix" due-to="Christian 
Semrau">
-      "SetUniqueList#subList()#contains(Object)" will now correctly check the 
subList
-      rather than the parent list.
-    </action>
-    <action issue="COLLECTIONS-306" dev="brentworden" type="add" due-to="Chris 
Shayan">
-      Added method "CollectionUtils#subtract(Iterable, Iterable, Predicate)".
-    </action>
-    <action issue="COLLECTIONS-304" dev="bayard" type="fix" due-to="Rafał 
Figas,Bjorn Townsend">
-      "SetUniqueList#set(int, Object)" will now correctly enforce the 
uniqueness constraint.
-    </action>
-    <action issue="COLLECTIONS-303" dev="bayard" type="fix" due-to="Emmanuel 
Bourg">
-      Improved javadoc for "Unmodifiable*" classes wrt behavior when the users 
tries
-      to modify the collection.
-    </action>
-    <action issue="COLLECTIONS-298" dev="bayard" type="update" 
due-to="Benjamin Bentmann">
-      Calling "CollectionUtils#sizeIsEmpty(null)" will now return true.
-    </action>
-    <action issue="COLLECTIONS-296" dev="tn" type="add" due-to="Julius Davies">
-      Added methods "CollectionUtils#collate(...)" to merge two sorted 
Collections
-      into a sorted List using the standard O(n) merge algorithm.
-    </action>
-    <action issue="COLLECTIONS-294" dev="bayard" type="fix" due-to="Benjamin 
Bentmann">
-      "CaseInsensitiveMap" will now convert input strings to lower-case in a
-      locale-independant manner.
-    </action>
-    <action issue="COLLECTIONS-293" dev="tn" type="add" due-to="Stephen 
Kestle">
-      Added support for using custom "Equator" objects in "EqualPredicate".
-    </action>
-    <action issue="COLLECTIONS-289" dev="bayard" type="add" due-to="Fredrik 
Kjellberg">
-      Added method "CollatingIterator#getIteratorIndex()".
-    </action>
-    <action issue="COLLECTIONS-256,COLLECTIONS-288" dev="bayard" type="fix" 
due-to="Paul Benedict">
-      Fixed javadoc for "ListUtils#transformedList(List)" to clarify that 
existing objects
-      in the list are not transformed.
-    </action>
-    <action issue="COLLECTIONS-286" dev="mbenson" type="add" due-to="Geoffrey 
De Smet">
-      Added method "CollectionUtils#extractSingleton(Collection)".
-    </action>
-    <action issue="COLLECTIONS-285" dev="tn" type="add" due-to="Christian 
Gruenberg">
-      Added serialization support for "TreeBidiMap".
-    </action>
-    <action issue="COLLECTIONS-280" dev="bayard" type="update" due-to="Chris 
Lewis">
-      The predicate that rejected an object to be added to a 
"PredicatedCollection"
-      is now contained in the respective exception message.
-    </action>
-    <action issue="COLLECTIONS-275" dev="tn" type="add" due-to="Stephen 
Kestle">
-      Added "IndexedCollection" collection decorator which provides a map-like
-      view on an existing collection.
-    </action>
-    <action issue="COLLECTIONS-272" dev="tn" type="add" due-to="Chaitanya 
Mutyala">
-      Added serialization support for "FixedOrderComparator" and 
"TransformingComparator".
-    </action>
-    <action issue="COLLECTIONS-266" dev="bayard" type="fix" due-to="Joerg 
Schaible">
-      "MultiKey" will now be correctly serialized/de-serialized.
-    </action>
-    <action issue="COLLECTIONS-265" dev="bayard" type="update" due-to="David 
Saff">
-      "TreeBag" will now only accept "Comparable" objects as input when used 
with natural ordering.
-    </action>
-    <action issue="COLLECTIONS-263" dev="tn" type="add" due-to="John Hunsley">
-      Added methods "MapUtils#populateMap(MultiMap, ...)" to support also 
"MultiMap" instances
-      as input.
-    </action>
-    <action issue="COLLECTIONS-262" dev="bayard" type="fix" due-to="Lisen Mu">
-      Fixed javadoc for methods "firstKey()" and "lastKey()" in class 
"AbstractLinkedMap".
-    </action>
-    <action issue="COLLECTIONS-261" dev="bayard" type="fix" due-to="ori">
-      "Flat3Map#remove(Object)" will now return the correct value mapped to 
the removed key
-      if the size of the map is less or equal 3.
-    </action>
-    <action issue="COLLECTIONS-260" dev="mbenson" type="add" due-to="Stephen 
Kestle">
-      Added constructor "TransformingComparator(Transformer)".
-    </action>
-    <action issue="COLLECTIONS-258" dev="tn" type="add" due-to="Nathan 
Blomquist">
-      Added "DualLinkedHashBidiMap" bidi map implementation.
-    </action>
-    <action issue="COLLECTIONS-255" dev="mbenson" type="fix" due-to="Henri 
Yandell">
-      Removed unused variables in "TreeBidiMap".
-    </action>
-    <action issue="COLLECTIONS-251,COLLECTIONS-321" dev="mbenson" 
type="update" due-to="Stephen Kestle">
-      The static factory methods have been renamed from "getInstance()" to a 
camel-case
-      version of the class name, e.g. "truePredicate()" for class 
"TruePredicate".
-    </action>
-    <action issue="COLLECTIONS-249" dev="bayard" type="fix" due-to="Joe Kelly">
-      "SetUniqueList.addAll(int, Collection)" now correctly add the collection 
at the
-      provided index.
-    </action>
-    <action issue="COLLECTIONS-242" dev="skestle" type="add">
-      Added "Equator" interface.
-    </action>
-    <action issue="COLLECTIONS-241" dev="brentworden" type="add" 
due-to="Elifarley Callado Coelho">
-      Added "PassiveExpiringMap" map decorator.
-    </action>
-    <action issue="COLLECTIONS-240" dev="bayard" type="update" due-to="Wouter 
de Vaal">
-      "MultiValueMap" is now serializable.
-    </action>
-    <action issue="COLLECTIONS-237" dev="tn" type="add" due-to="Nils Kaiser, 
Alan Mehlo">
-      Added method "MultiValueMap#iterator()" to return a flattened version of
-      "entrySet().iterator()". Clarified javadoc for "entrySet()" that the 
returned Entry
-      objects are unflattened, i.e. the Entry object for a given key contains 
all values
-      mapped to this key.
-    </action>
-    <action issue="COLLECTIONS-235" dev="bayard" type="add" due-to="Nathan 
Egge">
-      Added method "ListUtils#indexOf(List, Predicate)".
-    </action>
-    <action issue="COLLECTIONS-232" dev="bayard" type="fix" due-to="Mark 
Hindess">
-      Fixed several unit tests which were using parameters to 
"assertEquals(...)" in wrong order.
-    </action>
-    <action issue="COLLECTIONS-231" dev="tn" type="update" due-to="Torsten 
Curdt">
-      Return concrete class in static factory methods instead of base class 
interface
-      (except for Unmodifiable decorators).
-    </action>
-    <action issue="COLLECTIONS-230,COLLECTIONS-297,COLLECTIONS-318" 
dev="bayard" type="update" due-to="Stepan Koltsov,sebb">
-      "CollectionUtils#size(Collection)" now returns 0 when called with null 
as input.
-    </action>
-    <action issue="COLLECTIONS-229" dev="scolebourne" type="remove">
-      Removed deprecated classes and methods.
-    </action>
-    <action issue="COLLECTIONS-228" dev="scolebourne" type="fix">
-      "MultiValueMap#put(Object, Object)" and "MultiValueMap#putAll(Object, 
Collection)"
-      now correctly return if the map has changed by this operation.
-    </action>
-    <action issue="COLLECTIONS-226" dev="bayard" type="add" due-to="Vasily 
Ivanov">
-      Added method "ListOrderedMap#putAll(int, Map)".
-    </action>
-    <action issue="COLLECTIONS-225" dev="tn" type="add" due-to="Sam Berlin, 
Roger Kapsi">
-      Added new "Trie" interface with a first concrete implementation 
"PatriciaTrie"
-      together with decorators "Unmodifiable" and "Synchronized".
-    </action>
-    <action issue="COLLECTIONS-223" dev="bayard" type="update" due-to="Vasily 
Ivanov">
-      "CollectionUtils#addAll(...)" methods now return if the collection has 
been changed
-      by this operation.
-    </action>
-    <action issue="COLLECTIONS-221" dev="bayard" type="update" due-to="Pal 
Denes">
-      "CompositeCollection", "CompositeMap" and "CompositeSet" are now 
serializable.
-    </action>
-    <action issue="COLLECTIONS-219" dev="scolebourne" type="fix" due-to="Tom 
Leccese">
-      "CollectionUtils#removeAll" wrongly called "ListUtils#retainAll".
-    </action>
-    <action issue="COLLECTIONS-218" dev="skestle" type="update">
-      The "CollectionUtils#select(Collection, Predicate, Collection)" method 
will now
-      return the output collection.
-    </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.
-    </action>
-    <action issue="COLLECTIONS-216" dev="scolebourne" type="fix" 
due-to="Hendrik Maryns">
-      "MultiKey#toString()" will now use "Arrays#toString(List)".
-    </action>
-    <action issue="COLLECTIONS-213" dev="brentworden" type="add" due-to="Dusan 
Chromy">
-      Added support for resettable iterators in "IteratorIterable".
-    </action>
-    <action issue="COLLECTIONS-194" dev="bayard" type="add" due-to="Dave 
Meikle">
-      Added methods "MapUtils#populateMap(Map, Iterable, Transformer, ...)".
-    </action>
-    <action issue="COLLECTIONS-182" dev="mbenson" type="update" due-to="Jim 
Cakalic">
-      "CollectionUtils#forAllDo(Collection, Closure)" now returns the provided 
closure.
-    </action>
-    <action 
issue="COLLECTIONS-110,COLLECTIONS-243,COLLECTIONS-245,COLLECTIONS-247,
-                   COLLECTIONS-253,COLLECTIONS-273,COLLECTIONS-282" 
dev="multiple" type="update">
-      Make generic versions of all classes in collections.
-    </action>
-    <action issue="COLLECTIONS-8" dev="brentworden" type="add" due-to="Rune 
Peter Bjørnstad">
-      Added class "ComparatorPredicate".
-    </action>
-  </release>
-  <release version="3.2.2" date="2015-11-15" description="This is a security 
and bugfix release.">
-    <action issue="COLLECTIONS-580" dev="tn" type="update">
-      Serialization support for unsafe classes in the functor package is 
disabled
-      by default as this can be exploited for remote code execution attacks.
-      To re-enable the feature the system property 
"org.apache.commons.collections.enableUnsafeSerialization"
-      needs to be set to "true".
-      Classes considered to be unsafe are: CloneTransformer, ForClosure, 
InstantiateFactory,
-      InstantiateTransformer, InvokerTransformer, PrototypeCloneFactory,
-      PrototypeSerializationFactory, WhileClosure.
-    </action>
-    <action issue="COLLECTIONS-538" dev="tn" type="fix" due-to="Trejkaz">
-      "ExtendedProperties" will now use a privileged action to access the
-      "file.separator" system property. In case the class does not have
-      permission to read system properties, the "File#separator" field will
-      be used instead.
-    </action>
-    <action issue="COLLECTIONS-447" dev="tn" type="fix" due-to="Jeffrey 
Barnes">
-      Tree traversal with a TreeListIterator will not be affected anymore by
-      the removal of an element directly after a call to previous().
-    </action>
-    <action issue="COLLECTIONS-444" dev="tn" type="fix" due-to="Thomas Vahrst, 
John Vasileff">
-      SetUniqueList.set(int, Object) now works correctly if the object to be 
inserted
-      is already placed at the given position.
-    </action>
-    <action issue="COLLECTIONS-350" dev="bayard" type="fix" due-to="Michael 
Akerman">
-      Removed debug output in "MapUtils#getNumber(Map)".
-    </action>
-    <action issue="COLLECTIONS-335" dev="jochen" type="fix" due-to="sebb">
-      Fixed cache assignment for "TreeBidiMap#entrySet".
-    </action>
-    <action issue="COLLECTIONS-334" dev="jochen" type="fix" due-to="sebb">
-      Synchronized access to lock in "StaticBucketMap#size()".
-    </action>
-    <action issue="COLLECTIONS-307" dev="bayard" type="fix" due-to="Christian 
Semrau">
-      "SetUniqueList#subList()#contains(Object)" will now correctly check the 
subList
-      rather than the parent list.
-    </action>
-    <action issue="COLLECTIONS-304" dev="bayard" type="fix" due-to="Rafał 
Figas,Bjorn Townsend">
-      "SetUniqueList#set(int, Object)" will now correctly enforce the 
uniqueness constraint.
-    </action>
-    <action issue="COLLECTIONS-294" dev="bayard" type="fix" due-to="Benjamin 
Bentmann">
-      "CaseInsensitiveMap" will now convert input strings to lower-case in a
-      locale-independent manner.
-    </action>
-    <action issue="COLLECTIONS-266" dev="bayard" type="fix" due-to="Joerg 
Schaible">
-      "MultiKey" will now be correctly serialized/de-serialized.
-    </action>
-    <action issue="COLLECTIONS-261" dev="bayard" type="fix" due-to="ori">
-      "Flat3Map#remove(Object)" will now return the correct value mapped to 
the removed key
-      if the size of the map is less or equal 3.
-    </action>
-    <action issue="COLLECTIONS-249" dev="bayard" type="fix" due-to="Joe Kelly">
-      "SetUniqueList.addAll(int, Collection)" now correctly add the collection 
at the
-      provided index.
-    </action>
-    <action issue="COLLECTIONS-228" dev="scolebourne" type="fix">
-      "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.
-    </action>
-  </release>
-  </body>
-</document>
+<?xml version="1.0"?>
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one or more
+     contributor license agreements.  See the NOTICE file distributed with
+     this work for additional information regarding copyright ownership.
+     The ASF licenses this file to You under the Apache License, Version 2.0
+     (the "License"); you may not use this file except in compliance with
+     the License.  You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+  -->
+<document>
+  <properties>
+    <title>Commons Collections Changes</title>
+  </properties>
+  <body>
+  <release version="4.2" date="2018-MM-DD" description="Update from Java 6 to 
Java 7, bug fixes, and small changes.">
+    <action issue="COLLECTIONS-599" dev="ggregory" type="fix" due-to="Tejas 
Patel, Saleem Akbar, Gary Gregory">
+      HashEntry array object naming data initialized with double the size 
during deserialization.
+    </action>
+    <action issue="COLLECTIONS-662" dev="chtompki" type="fix" due-to="Vamsi 
Kavuri">
+      Unit tests MapUtilsTest and ListIteratorWrapperTest no longer fail on 
Java 9.
+    </action>
+    <action issue="COLLECTIONS-661" dev="kinow" type="fix">
+      Intermittent test failures in Windows for HashSetValuedHashMap.
+    </action>
+    <action issue="COLLECTIONS-660" dev="kinow" type="fix">
+      Uncomment test in AbstractMapTest regarding LRUMap equals.
+    </action>
+    <action issue="COLLECTIONS-658" dev="britter" type="add">
+      Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility.
+    </action>
+    <action issue="COLLECTIONS-656" dev="ggregory" type="fix">
+      Fix site build on Java 8.
+    </action>
+    <action issue="COLLECTIONS-653" dev="kinow" type="fix">
+      Update Javadoc to Build on Java 1.8.
+    </action>
+    <action issue="COLLECTIONS-606" dev="chtompki" type="fix" due-to="Vamsi 
Kavuri">
+      Build status, Coverage status and Maven central weren't in README.md
+    </action>
+    <action issue="COLLECTIONS-602" dev="kinow" type="update" due-to="John 
Mark">
+      Improve efficiency of DefaultedMap.get.
+    </action>
+    <action issue="COLLECTIONS-603" dev="kinow" type="update" due-to="Artem 
Konovalov">
+      Small improvements for generics, conditional statements, and warnings 
suppressions.
+    </action>
+    <action issue="COLLECTIONS-655" dev="ggregory" type="update">
+      Update platform from Java 6 to Java 7.
+    </action>
+    <action issue="COLLECTIONS-594" dev="ggregory" type="fix" due-to="Javen 
O'Neal">
+      Web site spelling error: MultiValuedMapeList.
+    </action>
+    <action issue="COLLECTIONS-597" dev="ggregory" type="fix" due-to="Enrique">
+       Correction of Javadoc for 
org.apache.commons.collections4.functors.CatchAndRethrowClosure.
+    </action>
+    <action issue="COLLECTIONS-589" dev="ggregory" type="add" due-to="Gary 
Gregory">
+      Add null-safe MapUtils.size(Map&lt;?, ?>) method.
+    </action>
+    <action issue="COLLECTIONS-586" dev="ggregory" type="add" 
due-to="Shailender Bathula, Gary Gregory">
+      PatriciaTrie prefixMap clear throws NullPointerException.
+    </action>
+    <action issue="COLLECTIONS-654" dev="ggregory" type="add">
+      Add class SortedProperties to sort keys.
+    </action>
+    <action issue="COLLECTIONS-666" dev="ggregory" type="update" 
due-to="BELUGA BEHR">
+      org.apache.commons.collections4.ListUtils.union(List, List) should 
pre-allocate result list.
+    </action>
+    <action issue="COLLECTIONS-669" dev="ggregory" type="update" 
due-to="BELUGA BEHR, Gary Gregory">
+      Update 
org.apache.commons.collections4.CollectionUtils.addAll(Collection&lt;C>, C[]) 
to addAll(Collection&lt;C>, C...).
+    </action>
+    <action issue="COLLECTIONS-668" dev="ggregory" type="add" due-to="Gary 
Gregory">
+      Add CollectionUtils containsAny method for primitive array: 
org.apache.commons.collections4.CollectionUtils.containsAny(Collection&lt;?>, 
T...).
+    </action>
+    <action issue="COLLECTIONS-575" dev="ggregory" type="add" due-to="Guram 
Savinov, Grzegorz Rożniecki, Bruno P. Kinoshita, Gary Gregory">
+      Synchronized queue wrapper in QueueUtils.
+    </action>
+    <action issue="COLLECTIONS-670" dev="ggregory" type="add" due-to="Gary 
Gregory">
+      Add org.apache.commons.collections4.IteratorUtils.first(Iterator).
+    </action>
+    <action issue="COLLECTIONS-671" dev="ggregory" type="add" due-to="Gary 
Gregory">
+      Add org.apache.commons.collections4.IterableUtils.first(Iterable).
+    </action>
+    <action issue="COLLECTIONS-675" dev="ggregory" type="add" due-to="">
+      Modify IteratorUtils.peekingIterator signature to return PeekingIterator.
+    </action>
+  </release>
+  <release version="4.1" date="2015-11-28" description="This is a security and 
minor release.">
+    <action issue="COLLECTIONS-508" dev="tn" type="add">
+      Added new interfaces "MultiValuedMap", "ListValuedMap" and "SetValuedMap"
+      as a replacement for "MultiMap". Decorators and implementations reside in
+      the "multimap" package and a "MultiMapUtils" class has been added.
+      The existing interface "MultiMap" as well as the concrete implementation
+      "MultiValueMap" has been deprecated.
+    </action>
+    <action issue="COLLECTIONS-551" dev="tn" type="update">
+      Deprecated various method in "CollectionUtils" in favor of similar
+      methods in the newly introduced "IterableUtils".
+    </action>
+    <action issue="COLLECTIONS-580" dev="tn" type="update">
+      Serialization support for unsafe classes in the functor package
+      has been removed as this can be exploited for remote code execution
+      attacks. Classes considered to be unsafe are: CloneTransformer,
+      ForClosure, InstantiateFactory, InstantiateTransformer, 
InvokerTransformer,
+      PrototypeCloneFactory, PrototypeSerializationFactory, WhileClosure.
+    </action>
+    <action issue="COLLECTIONS-580" dev="tn" type="fix">
+      Added validation when de-serializing a "MultiValueMap#ReflectionFactory":
+      only Collection classes are allowed, otherwise an 
UnsupportedOperationException
+      will be thrown during de-serialization.
+    </action>
+    <action issue="COLLECTIONS-567" dev="tn" type="add">
+      Added new MultiSet interface which is intended to be a replacement for
+      the Bag interface. The main difference is that a MultiSet is fully 
compatible
+      to the Collection contract.
+    </action>
+    <action issue="COLLECTIONS-576" dev="tn" type="fix" due-to="Stephan Roch">
+      Subclasses of MultiKey did not re-calculate their hashcode after 
de-serialization.
+    </action>
+    <action issue="COLLECTIONS-572" dev="tn" type="add">
+      Added set operations to "SetUtils": union, difference, intersection and 
disjunction.
+      The operations return a view of the result that is backed by the input 
sets.
+    </action>
+    <action issue="COLLECTIONS-570" dev="tn" type="update">
+      All constructors and static factory methods will now throw a 
"NullPointerException" if
+      a required input argument is null. Previously sometimes a 
"IllegalArgumentException" was used.
+    </action>
+    <action issue="COLLECTIONS-571" dev="tn" type="update">
+      Deprecated methods "synchronizedCollection(Collection)" and 
"unmodifiableCollection(Collection)"
+      in class "CollectionUtils", the corresponding methods in 
"java.util.Collections" should be used instead.
+    </action>
+    <action issue="COLLECTIONS-566" dev="tn" type="fix">
+      "IteratorUtils#collate(...)" methods did not use natural ordering when a
+      null comparator was provided.
+    </action>
+    <action issue="COLLECTIONS-557" dev="tn" type="add" due-to="Philippe 
Mouawad">
+      Added support to specify the initial size of a "LRUMap".
+    </action>
+    <action issue="COLLECTIONS-565" dev="tn" type="add">
+      Added decorators for "NavigableSet" interface.
+    </action>
+    <action issue="COLLECTIONS-464,COLLECTIONS-442" dev="tn" type="add">
+      Added new class "FluentIterable" to support a fluent API for manipulating
+      Iterable instances. Additionally various supporting methods have been
+      added to "IterableUtils" and "IteratorUtils".
+    </action>
+    <action issue="COLLECTIONS-464" dev="tn" type="add">
+      Added new "ZippingIterator" and factory methods 
"IteratorUtils#zippingIterator(...)".
+    </action>
+    <action issue="COLLECTIONS-464" dev="tn" type="add">
+      Added new decorator "SkippingIterator" and factory methods 
"IteratorUtils#skippingIterator(...)".
+    </action>
+    <action issue="COLLECTIONS-556" dev="tn" type="add">
+      Added method "SetUtils#newIdentityHashSet()" which returns a new 
identity HashSet
+      using reference-equality instead of object-equality.
+    </action>
+    <action issue="COLLECTIONS-562" dev="tn" type="update">
+      Upgraded minimum java requirement to Java 6 (up from Java 5).
+    </action>
+    <action issue="COLLECTIONS-395" dev="tn" type="add" due-to="David 
Hawthorne">
+      Added method "LRUMap#get(Object, boolean)" that allows to query the map
+      without affecting the least recently used order.
+    </action>
+    <action issue="COLLECTIONS-558" dev="tn" type="fix" due-to="Felix Rabe">
+      Changed return type of "ListOrderedSet#remove(int)" from Object to the 
generic type parameter.
+    </action>
+    <action issue="COLLECTIONS-555" dev="tn" type="fix" due-to="M Kim">
+      Added clarification to javadoc of "TreeBag#add(Object)" wrt null 
arguments.
+    </action>
+    <action issue="COLLECTIONS-427" dev="tn" type="add" due-to="Gonçalo 
Marques">
+      Added "toString(...)" methods to newly created "IterableUtils" and 
existing "IteratorUtils"
+      to get a string representation of an Iterable/Iterator instance similar 
to "Arrays#toString(...)".
+    </action>
+    <action issue="COLLECTIONS-427" dev="tn" type="fix">
+      Reverted performance improvement for 
"SetUniqueList#retainAll(Collection)"
+      introduced in 4.0. Added clarifying javadoc wrt runtime complexity 
instead.
+    </action>
+    <action issue="COLLECTIONS-426" dev="tn" type="fix">
+      Reverted performance improvement for 
"ListOrderedSet#retainAll(Collection)"
+      introduced in 4.0. Added clarifying javadoc wrt runtime complexity 
instead.
+    </action>
+    <action issue="COLLECTIONS-530" dev="tn" type="fix" due-to="Erik">
+      Added a Builder for "PredicatedCollection". Elements added to the builder
+      that fail the predicate will not throw an IllegalArgumentException. The 
builder
+      supports creating predicated lists, bags, sets and queues.
+    </action>
+    <action issue="COLLECTIONS-545" dev="tn" type="fix" due-to="Oswaldo Olivo">
+      Documented runtime complexity of "CollectionUtils#removeAll(Collection, 
Collection).
+    </action>
+    <action issue="COLLECTIONS-543" dev="tn" type="fix">
+      "AbstractCollectionDecorator" doesn't forward equals and hashCode 
anymore.
+    </action>
+    <action issue="COLLECTIONS-544" dev="tn" type="fix" due-to="Oswaldo Olivo">
+      Documented runtime complexity of "CollectionUtils#retainAll(Collection, 
Collection).
+    </action>
+    <action issue="COLLECTIONS-542" dev="tn" type="fix">
+      "AbstractHashedMap" still inherits from "AbstractMap", contrary to what
+      the class javadoc stated. The inheritance will now be removed in v5.0.
+    </action>
+    <action issue="COLLECTIONS-539" dev="tn" type="add" due-to="Guram Savinov">
+      Changed scope of "CircularFifoQueue#isAtFullCapacity()" to public.
+    </action>
+    <action issue="COLLECTIONS-525" dev="tn" type="fix" due-to="Zigler Zhang">
+      The map returned by "PatriciaTrie#prefixMap()" did not contain all keys
+      that are prefixed by the given search key in some rare cases.
+    </action>
+    <action issue="COLLECTIONS-511" dev="tn" type="add" due-to="Nathan 
Blomquist, Brent Worden">
+      Added new methods "IterableUtils#partition(...)" to partition an input 
collection
+      into separate output collections based on evaluation of one or more 
predicates.
+    </action>
+    <action issue="COLLECTIONS-537" dev="tn" type="fix" due-to="Frank Jakop">
+      Harmonized signature of factory methods for functor-related classes 
which take
+      a collection as input with their array counterparts.
+    </action>
+    <action issue="COLLECTIONS-540" dev="tn" type="fix" due-to="Daniel 
Stewart, Issam El Atif">
+      Added overloaded method "CollectionUtils#get(Enumeration, int)" and 
simplified
+      code for "CollectionUtils#get(Object, int)".
+    </action>
+    <action issue="COLLECTIONS-536" dev="tn" type="fix" due-to="Tagir Valeev">
+      Improved check for null input in "MapUtils#putAll(Map, Object[])".
+    </action>
+    <action issue="COLLECTIONS-534" dev="tn" type="fix" due-to="Oswaldo Olivo">
+      Added clarifying javadoc wrt runtime complexity of 
"CollectionBag#retainAll".
+    </action>
+    <action issue="COLLECTIONS-529" dev="tn" type="add" due-to="Alexander 
Muthmann, Dipanjan Laha">
+      Added methods "removeAll(...)" and "retainAll(...)" to "CollectionUtils" 
that perform
+      equality checks using the provided "Equator" object instead of 
"Object#equals()".
+    </action>
+    <action issue="COLLECTIONS-531" dev="tn" type="fix" due-to="Dipanjan Laha">
+      Use correct type bounds in
+      "CollectionUtils#isEqualCollection(Collection, Collection, Equator)" to
+      prevent a "ClassCastException" at runtime for invalid inputs.
+    </action>
+    <action issue="COLLECTIONS-523" dev="tn" type="fix" due-to="Thiago 
Andrade">
+      Removed unneeded private method in "PassiveExpiringMap".
+    </action>
+    <action issue="COLLECTIONS-516" dev="tn" type="fix" due-to="Cyrille Artho">
+      Added clarification to the javadoc of "MapUtils#toProperties(Map)" in 
case
+      of null keys/values.
+    </action>
+    <action issue="COLLECTIONS-524" dev="tn" type="fix" due-to="J Goodfellow">
+      "ListOrderedSet#listOrderedSet(List)" did not remove duplicates from the
+      input list as advertised in the javadoc.
+    </action>
+    <action issue="COLLECTIONS-521" dev="tn" type="fix" due-to="Maxime Nay">
+      "MultiKeyMap" was throwing a "NullPointerException" for various 
operations
+      if two key arguments have been used and the second was "null".
+    </action>
+    <action issue="COLLECTIONS-522" dev="tn" type="fix" due-to="Erik">
+      Updated code example for "PredicatedList".
+    </action>
+    <action issue="COLLECTIONS-512" dev="tn" type="fix" due-to="Cyrille Artho">
+      "TransformingComparator" and "FixedOrderComparator" did not comply with
+      the contract of "Object#equals".
+    </action>
+    <action issue="COLLECTIONS-510" dev="tn" type="fix" due-to="Hollis Waite">
+      Fix compilation errors when using source level 1.8 and a recent java 8 
compiler.
+    </action>
+    <action issue="COLLECTIONS-509" dev="tn" type="fix">
+      Clarified javadoc of "CollectionBag" wrt changes from the original Bag 
interface.
+    </action>
+    <action issue="COLLECTIONS-507" dev="tn" type="fix" due-to="Gerson">
+      Removed wrong type bounds for "ComparatorUtils#chainedComparator(...)".
+    </action>
+    <action issue="COLLECTIONS-506" dev="tn" type="fix" due-to="Anthony 
Communier">
+      Added javadoc clarification to class "CollectionUtils" that input 
objects which
+      override "Object#equals(Object)" must also maintain the general contract 
of
+      "Object#hashCode()" as various utility methods take advantage of 
sets/maps/bags.
+    </action>
+    <action issue="COLLECTIONS-503" dev="tn" type="add" due-to="Josh Cain">
+      Added new transformer "IfTransformer" and factory methods 
"TransformerUtils#ifTransformer(...)"
+      which replace "TransformerUtils#switchTransformer(Predicate, 
Transformer, Transformer)".
+    </action>
+    <action issue="COLLECTIONS-471" dev="tn" type="add" due-to="Radford Tam">
+      Added new decorator "BoundedIterator" and factory methods 
"IteratorUtils#boundedIterator(...)".
+    </action>
+  </release>
+  <release version="4.0" date="2013-11-27" description="
+This is a major release: It combines bug fixes, new features and
+changes to existing features.
+
+Most notable changes are: use of generics and other language features 
introduced in Java 5 (varargs, Iterable),
+removed deprecated classes / methods and features which are now supported by 
the JDK,
+replaced Buffer interface with java.util.Queue,
+added concept of split maps with respective interfaces Put / Get (see also 
package splitmap),
+added new Trie interface together with an implementation of a Patricia Trie.
+
+Because of the base package name change, this release can be used together
+with earlier versions of Commons Collections.
+The minimal version of the Java platform required to compile and use
+Commons Collections is Java 5.
+Users are encouraged to upgrade to this version as, in addition to new
+features, this release includes numerous bug fixes.
+  ">
+    <action issue="COLLECTIONS-502" dev="tn" type="update">
+      Resolved generic parameter inconsistency for various static fields, e.g. 
BagUtils.EMPTY_BAG,
+      TruePredicate.INSTANCE and many others. All accessible static fields use 
raw types so that
+      they can be used directly without explicit casting. To avoid compiler 
warnings about unchecked
+      conversion and/or rawtypes use the corresponding factory methods, e.g. 
BagUtils.emptyBag().
+    </action>
+    <action issue="COLLECTIONS-501" dev="tn" type="update">
+      Renamed methods "V MultiKeyMap#remove(Object, Object, ...)" to
+      "V MultiKeyMap#removeMultiKey(Object, Object, ...)" to avoid future 
conflicts
+      with a default method of the Map interface in Java 8.
+    </action>
+    <action issue="COLLECTIONS-500" dev="tn" type="update">
+      Renamed "V MultiMap#remove(K, V)" to "boolean MultiMap#removeMapping(K, 
V)"
+      to avoid future conflicts with a default method of the Map interface in 
Java 8.
+    </action>
+    <action issue="COLLECTIONS-499" dev="tn" type="update">
+      Refactored the test framework for Bag implementations to extend from
+      "AbstractCollectionTest" by decorating the concrete Bag instance with
+      a CollectionBag or CollectionSortedBag.
+    </action>
+    <action issue="COLLECTIONS-498" dev="tn" type="fix">
+      "CollectionBag" will now also respect the contract of the decorated bag 
in case
+      a null argument is provided to either removeAll or retainAll.
+    </action>
+    <action issue="COLLECTIONS-497" dev="tn" type="add">
+      Added bag decorator "CollectionSortedBag" which decorates a SortedBag to 
make it
+      comply with the Collection contract.
+    </action>
+    <action issue="COLLECTIONS-496" dev="tn" type="update">
+      "UnmodifiableBoundedCollection" does now also implement the marker 
interface "Unmodifiable"
+      similar as all other unmodifiable decorators.
+    </action>
+    <action issue="COLLECTIONS-495" dev="tn" type="fix">
+      "UnmodifiableTrie#unmodifiableTrie(Trie)" will not decorate again an 
already
+      unmodifiable Trie. Also the return type has been changed to "Trie" to be 
consistent
+      with other Unmodifiable decorators.
+    </action>
+    <action issue="COLLECTIONS-494" dev="tn" type="update" due-to="Emmanuel 
Bourg">
+      Moved "Equator" interface to base package for consistency.
+    </action>
+    <action issue="COLLECTIONS-488" dev="tn" type="add" due-to="Josh Cain">
+      Added "CollectionsUtils#matchesAll(Iterable, Predicate)" to test if all 
elements
+      of a collection match a given predicate.
+    </action>
+    <action issue="COLLECTIONS-485" dev="tn" type="fix" due-to="Hollis Waite">
+      Accept wildcard input where possible, e.g. in copy-constructors, 
Unmodifiable* decorators
+      and iterators.
+    </action>
+    <action issue="COLLECTIONS-481" dev="tn" type="fix" due-to="Hollis Waite">
+      No collision detection/resolution was performed when calling 
"CompositeSet#addComposited(...)"
+      with more than one Set as argument. Additionally use varargs parameters 
instead of arrays
+      in CompositeSet and CompositeCollection constructor and addComposited 
method.
+    </action>
+    <action issue="COLLECTIONS-480" dev="tn" type="update" due-to="Hollis 
Waite">
+      Narrow return type of "BidiMap#values()" to Set as the values are 
required to be unique.
+    </action>
+    <action issue="COLLECTIONS-475" dev="tn" type="fix">
+      Fixed conversion of timeout parameters in "PassiveExpiringMap".
+    </action>
+    <action issue="COLLECTIONS-474" dev="sebb" type="fix" due-to="Ning Chen">
+      Exception in "ListOrderedMap#putAll" if map contains null values.
+    </action>
+    <action issue="COLLECTIONS-473" dev="tn" type="update" due-to="sebb">
+      Made field "collection" in class "AbstractCollectionDecorator" private 
and added
+      setter "setCollection(Collection)" with scope protected to set the 
decorated collection
+      during de-serialization.
+    </action>
+    <action issue="COLLECTIONS-472" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "AbstractMapBag#containsAll(Collection)" by 
returning immediately
+      after a difference has been found.
+    </action>
+    <action issue="COLLECTIONS-470" dev="tn" type="update" due-to="sebb">
+      Renamed class "TransformedMap" in package "splitmap" to 
"TransformedSplitMap" to avoid
+      name clash with similar class in package "map".
+    </action>
+    <action issue="COLLECTIONS-468" dev="tn" type="add">
+      Added bag decorator "CollectionBag" which decorates a bag to make it 
comply with the
+      Collection contract.
+    </action>
+    <action issue="COLLECTIONS-466" dev="tn" type="update">
+      Replaced "Collection" with "Iterable" for method arguments where 
applicable.
+    </action>
+    <action issue="COLLECTIONS-463" dev="tn" type="add" due-to="Andy Seaborne, 
Claude Warren">
+      Added "PushbackIterator" decorator to support pushback of elements 
during iteration.
+    </action>
+    <action issue="COLLECTIONS-462" dev="tn" type="add" due-to="Andy Seaborne, 
Claude Warren">
+      Added "PeekingIterator" decorator to support one-element lookahead 
during iteration.
+    </action>
+    <action issue="COLLECTIONS-461" dev="tn" type="fix" due-to="Matt Benson, 
sebb">
+      Added additional clarification to javadoc of interface "Put" wrt return 
type of
+      "put(Object, Object)" method.
+    </action>
+    <action issue="COLLECTIONS-460" dev="tn" type="update">
+      Changed "IteratorChain" to use internally a "Queue" instead of a "List". 
Iterators are
+      removed from the queue once used and can be garbage collected after 
being exhausted.
+      Additionally removed the methods "setIterator(Iterator)" and 
"getIterators()".
+    </action>
+    <action issue="COLLECTIONS-459" dev="tn" type="update" due-to="sebb">
+      Removed method "setArray(Object)" in class ArrayIterator and method 
"setArray(Object[])"
+      in class ObjectArrayIterator and made fields array, startIndex and 
endIndex final.
+    </action>
+    <action issue="COLLECTIONS-458" dev="sebb" type="remove">
+      Removed unused class "AbstractUntypedCollectionDecorator&lt;E, D&gt;".
+    </action>
+    <action issue="COLLECTIONS-456" dev="tn" type="add">
+      Added methods "ListUtils#longestCommonSubsequence(...)" to get the 
longest common subsequence
+      of arbitrary lists or CharSequences.
+    </action>
+    <action issue="COLLECTIONS-455" dev="sebb" type="update">
+      Changed scope of fields to private where appropriate.
+    </action>
+    <action issue="COLLECTIONS-454" dev="tn" type="update">
+      An iterator over a "Flat3Map#entrySet()" will now return
+      independent Map.Entry objects that will not change anymore when
+      the iterator progresses.
+    </action>
+    <action issue="COLLECTIONS-453" dev="tn" type="update">
+      Several closure and transformer implementations in the functors package
+      will now copy an array as input to their constructor (e.g. 
ChainedClosure).
+    </action>
+    <action issue="COLLECTIONS-452" dev="tn" type="update">
+      Change base package to org.apache.commons.collections4.
+    </action>
+    <action issue="COLLECTIONS-451" dev="tn" type="update">
+      The constructors for all Utils classes are now private to prevent 
instantiation.
+    </action>
+    <action issue="COLLECTIONS-450" dev="tn" type="add" due-to="J. Moldawski">
+      Added methods "forAllButLastDo(Collection, Closure)" and 
"forAllButLastDo(Iterator, Closure)"
+      to class "CollectionUtils".
+    </action>
+    <action issue="COLLECTIONS-447" dev="tn" type="fix" due-to="Jeffrey 
Barnes">
+      Tree traversal with a TreeListIterator will not be affected anymore by
+      the removal of an element directly after a call to previous().
+    </action>
+    <action issue="COLLECTIONS-446" dev="tn" type="add" due-to="Matt Lachman">
+      Added method "CollectionUtils#isEqualCollection(Collection, Collection, 
Equator)".
+    </action>
+    <action issue="COLLECTIONS-445" dev="tn" type="fix">
+      Adapt and/or ignore several unit tests when run on a IBM J9 VM 
(specification version 1.6.0)
+      due to a faulty "java.util.TreeMap" implementation.
+    </action>
+    <action issue="COLLECTIONS-444" dev="tn" type="fix" due-to="Thomas Vahrst, 
John Vasileff">
+      SetUniqueList.set(int, E) now works correctly if the object to be 
inserted
+      is already placed at the given position.
+    </action>
+    <action issue="COLLECTIONS-441" dev="tn" type="fix" due-to="Thomas Vahrst">
+      MultiKeyMap.clone() now correctly calls super.clone().
+    </action>
+    <action issue="COLLECTIONS-436" dev="tn" type="add" due-to="Arman Sharif">
+      Added "emptyIfNull" methods to classes "CollectionUtils", "ListUtils", 
"SetUtils"
+      and "MapUtils".
+    </action>
+    <action issue="COLLECTIONS-433" dev="tn" type="fix" due-to="Jeffrey 
Barnes">
+      Improve performance of "TreeList#addAll" and "TreeList(Collection)" by 
converting
+      the input collection into an AVL tree and efficiently merge it into the 
existing tree.
+    </action>
+    <action issue="COLLECTIONS-432" dev="tn" type="update">
+      Replaced "Buffer" interface with "java.util.Queue". Kept 
"CircularFifoQueue"
+      as well as "Predicated", "Transformed" and "Unmodifiable" decorators.
+    </action>
+    <action issue="COLLECTIONS-429,COLLECTIONS-434" dev="tn" type="add" 
due-to="Adrian Nistor, Mert Guldur">
+      Added method "CollectionUtils#containsAll(Collection, Collection)" with 
guaranteed
+      runtime complexity of O(n + m) and space complexity of O(n). This method 
may yield much
+      better performance than "Collection#containsAll(Collection)" depending 
on the use-case and
+      type of collection used.
+    </action>
+    <action issue="COLLECTIONS-427" dev="brentworden" type="fix" due-to="Mert 
Guldur">
+      Fixed performance issue in "SetUniqueList#retainAll" method for large 
collections.
+    </action>
+    <action issue="COLLECTIONS-426" dev="brentworden" type="fix" 
due-to="Adrian Nistor">
+      Fixed performance issue in "ListOrderedSet#retainAll" method for large 
collections.
+    </action>
+    <action issue="COLLECTIONS-425" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "ListOrderedMap#remove(Object)" method.
+    </action>
+    <action issue="COLLECTIONS-424" dev="tn" type="update" due-to="Michael 
Pradel">
+      "CompositeSet" does not inherit from "CompositeCollection" anymore. The 
inner class
+      "SetMutator" has been updated accordingly.
+    </action>
+    <action issue="COLLECTIONS-422" dev="tn" type="add" due-to="Benoit Corne">
+      Added method "CollectionUtils#permutations(Collection)" and class 
"PermutationIterator"
+      to generate unordered permutations of a collection.
+    </action>
+    <action issue="COLLECTIONS-421" dev="tn" type="fix" due-to="Benedikt 
Ritter">
+      Update javadoc for "ListUtils#lazyList()" and 
"ListUtils#fixedSizeList()".
+    </action>
+    <action issue="COLLECTIONS-419" dev="tn" type="fix" due-to="Adrian Nistor">
+      Added clarifying javadoc wrt runtime complexity of 
"AbstractDualBidiMap#retainAll".
+    </action>
+    <action issue="COLLECTIONS-417" dev="tn" type="fix" due-to="Adrian Nistor">
+      Added clarifying javadoc wrt runtime complexity of 
"AbstractLinkedList#retainAll".
+    </action>
+    <action issue="COLLECTIONS-415" dev="tn" type="fix" due-to="Adrian Nistor">
+      Added clarifying javadoc wrt runtime complexity of 
"AbstractLinkedList#removeAll".
+    </action>
+    <action issue="COLLECTIONS-414" dev="tn" type="fix">
+      Fixed several compilation issues with older Java 1.6 compilers.
+    </action>
+    <action issue="COLLECTIONS-413" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "removeAll()" method for sets returned by 
"DualHashBidiMap#entrySet()".
+    </action>
+    <action issue="COLLECTIONS-412" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "CollectionUtils#subtract" methods.
+    </action>
+    <action issue="COLLECTIONS-411" dev="tn" type="fix" due-to="Adrian Nistor">
+      Fixed possible "IndexOutOfBoundsException" in "ListOrderedMap#putAll".
+    </action>
+    <action issue="COLLECTIONS-410" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "SetUniqueList#addAll" method.
+    </action>
+    <action issue="COLLECTIONS-409" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "ListOrderedSet#addAll" method.
+    </action>
+    <action issue="COLLECTIONS-408" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "SetUniqueList#removeAll".
+    </action>
+    <action issue="COLLECTIONS-407" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "ListOrderedSet#remove(Object)" in case the 
object is
+      not contained in the Set.
+    </action>
+    <action issue="COLLECTIONS-406" dev="tn" type="fix" due-to="Adrian Nistor">
+      Improved performance of "ListUtils#subtract" method.
+    </action>
+    <action issue="COLLECTIONS-405" dev="brentworden" type="add" due-to="Adam 
Dyga">
+      Added "ListUtils#select" and "ListUtils#selectRejected" methods.
+    </action>
+    <action issue="COLLECTIONS-404" dev="luc" type="add" due-to="Jordane 
Sarda">
+      Added an implementation of Eugene Myers difference algorithm in package
+      o.a.c.c.sequence.
+    </action>
+    <action issue="COLLECTIONS-400" dev="tn" type="fix" due-to="Shin Hwei Tan">
+      Added missing null check in "CollectionUtils#addIgnoreNull(Collection, 
Object)".
+    </action>
+    <action issue="COLLECTIONS-399" dev="tn" type="add" due-to="Sebb">
+      Added new method "get(int)" to "CircularFifoQueue".
+    </action>
+    <action issue="COLLECTIONS-396" dev="tn" type="add" due-to="Jeff 
Rodriguez">
+      Added "LazyIteratorChain" iterator.
+    </action>
+    <action issue="COLLECTIONS-393" dev="tn" type="add" due-to="Chris Shayan">
+      Added "ListUtils#partition" method to split a List into consecutive 
sublists.
+    </action>
+    <action issue="COLLECTIONS-391" dev="tn" type="fix" due-to="Shin Hwei Tan">
+      Fixed javadoc for "MapUtils#toProperties(Map)".
+    </action>
+    <action issue="COLLECTIONS-389" dev="tn" type="fix" due-to="Shin Hwei Tan">
+      Clarified javadoc for "TransformerUtils#mapTransformer" for null input.
+    </action>
+    <action issue="COLLECTIONS-388" dev="tn" type="fix" due-to="Shin Hwei Tan">
+      Clarified javadoc for "FactoryUtils#prototypeFactory" for null input.
+    </action>
+    <action issue="COLLECTIONS-384" dev="ggregory" type="fix" due-to="Shin 
Hwei Tan">
+      Fixed inconsistent javadoc for "MapUtils#synchronizedMap(Map)".
+    </action>
+    <action issue="COLLECTIONS-383" dev="tn" type="add" due-to="Adrian 
Cumiskey">
+      Added "CollectionUtils#forAllDo" implementation which takes an 
"Iterator" as input.
+    </action>
+    <action issue="COLLECTIONS-382" dev="tn" type="update" due-to="Olivier 
Lamy">
+      Change maven coordinates to "org.apache.commons.commons-collections4".
+    </action>
+    <action issue="COLLECTIONS-381" dev="sebb" type="update" due-to="Olivier 
Lamy">
+      Move the project structure to a standard maven layout.
+    </action>
+    <action issue="COLLECTIONS-380" dev="tn" type="fix" due-to="Dave Brosius">
+      Fixed infinite loop when calling 
"UnmodifiableBoundedCollection#unmodifiableBoundedCollection()".
+    </action>
+    <action issue="COLLECTIONS-379" dev="tn" type="fix" due-to="Shin Hwei Tan">
+      Fixed javadoc for several methods wrt expected NullPointerExceptions.
+    </action>
+    <action issue="COLLECTIONS-375" dev="tn" type="add" due-to="Ivan Hristov">
+      Added method "ListUtils#defaultIfNull(List, List)".
+    </action>
+    <action issue="COLLECTIONS-372" dev="tn" type="update">
+      TransformingComparator now supports different types for its input/output 
values.
+    </action>
+    <action issue="COLLECTIONS-364" dev="sebb" type="fix">
+      "DualTreeBidiMap" now uses the correct comparator for the reverse map 
during de-serialization.
+    </action>
+    <action issue="COLLECTIONS-363" dev="sebb" type="fix">
+      "TransformedMap" in the package "splitmap" can now be serialized.
+    </action>
+    <action issue="COLLECTIONS-362" dev="brentworden" type="update" 
due-to="Jean-Noel Rouvignac">
+      "CollectionUtils#filter(Iterable, Predicate)" will now return whether 
the collection
+      has been modified.
+    </action>
+    <action issue="COLLECTIONS-361" dev="tn" type="add" due-to="Jean-Noel 
Rouvignac">
+      Add method "CollectionUtils#filterInverse(Iterable, Predicate)".
+    </action>
+    <action issue="COLLECTIONS-360" dev="jochen" type="fix" due-to="Sai Zhang">
+      "FilterListIterator#hasNext" does not throw a NullPointerException 
anymore
+      to comply to the Java iterator specification.
+    </action>
+    <action issue="COLLECTIONS-359" dev="bayard" type="fix" due-to="Mark 
Shead">
+      "ListUtils#intersection(List, List)" will now also work correctly if 
there
+      are duplicate elements in the provided lists.
+    </action>
+    <action issue="COLLECTIONS-352" dev="bayard" type="fix" due-to="Adam Gent">
+      "AbstractCollectionDecorator" will now use internally "decorated()" to 
access
+      the decorated collection.
+    </action>
+    <action issue="COLLECTIONS-351" dev="bayard" type="remove" due-to="Henri 
Yandell">
+      Removed features which are now supported by the JDK.
+    </action>
+    <action issue="COLLECTIONS-350" dev="bayard" type="fix" due-to="Michael 
Akerman">
+      Removed debug output in "MapUtils#getNumber(Map)".
+    </action>
+    <action issue="COLLECTIONS-348" dev="brentworden" type="fix" due-to="Paul 
Benedict">
+      Fixed javadoc for all "transformedXXX(XXX)" methods in the respective 
Utils classes
+      to clarify that existing objects in the list are not transformed.
+    </action>
+    <action issu

<TRUNCATED>

Reply via email to