commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ggreg...@apache.org
Subject [1/2] commons-collections git commit: Fix formatting nits.
Date Wed, 27 Dec 2017 23:03:54 GMT
Repository: commons-collections
Updated Branches:
  refs/heads/master 0b1460dad -> 5023b45c0


http://git-wip-us.apache.org/repos/asf/commons-collections/blob/5023b45c/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3c17f92..9ad5161 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,892 +1,892 @@
-<?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="YYYY-MM-DD" description="New features">
-    <action issue="COLLECTIONS-662" dev="chtompki" type="fix" due-to="Vamsi Kavuri">
-        Unit tests MapUtilsTest and ListIteratorWrapperTest no longer fail in 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>
-  </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="YYYY-MM-DD" description="New features">
+    <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>
+  </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)".


<TRUNCATED>

Mime
View raw message