diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3c0f7870c..6055709f0 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -173,6 +173,16 @@
TransformingComparator now supports different types for its input/output values.
+
+ "DualTreeBidiMap" now uses the correct comparator for the reverse map during de-serialization.
+
+
+ "TransformedMap" in the package "splitmap" can now be serialized.
+
+
+ "CollectionUtils#filter(Iterable, Predicate)" will now return whether the collection
+ has been modified.
+
Add method "CollectionUtils#filterInverse(Iterable, Predicate)".
@@ -180,6 +190,33 @@
"FilterListIterator#hasNext" does not throw a NullPointerException anymore
to comply to the Java iterator specification.
+
+ "ListUtils#intersection(List, List)" will now also work correctly if there
+ are duplicate elements in the provided lists.
+
+
+ "AbstractCollectionDecorator" will now use internally "decorated()" to access
+ the decorated collection.
+
+
+ Removed debug output in "MapUtils#getNumber(Map)".
+
+
+ Fixed javadoc for all "transformedXXX(XXX)" methods in the respective Utils classes
+ to clarify that existing objects in the list are not transformed.
+
+
+ Singleton classes in package "functors" are now correctly de-serialized.
+
+
+ "NOPClosure" is now a final class.
+
+
+ Removed broken methods "equals(Object)" and "hashCode()" in class "NOPClosure".
+
+
+ Simplified exceptions as the cause is available from the parent.
+
Fixed cache assignment for "TreeBidiMap#entrySet".
@@ -194,9 +231,15 @@
Improve javadoc of "CollatingIterator" wrt the used "Comparator" and throw a
NullPointerException in "CollatingIterator#least" if no comparator is set.
+
+ "LRUMap#keySet()#remove(Object)" will not throw a "ConcurrentModificationException" anymore.
+
+
+ Improved performance of "ListUtils#intersection(List, List)".
+
- Added serialVersionUID fields for "ExtendedProperties", "CompositeCollection",
- "CompositeSet", "EmptyMapMutator", "EmptySetMutator".
+ Added serialVersionUID fields for "CompositeCollection", "CompositeSet",
+ "EmptyMapMutator", "EmptySetMutator".
Fields transformer and decorated in class "TransformingComparator" are now final.
@@ -209,17 +252,64 @@
Added NodeListIterator and convenience methods in IteratorUtils to iterate over
a org.w3c.dom.NodeList.
+
+ Improved performance of "StaticBucketMap#putAll(Map)" by iterating over the entry set.
+
+
+ Avoid redundant null check in "IteratorUtils#getIterator(Object)".
+
+
+ Use a private method to populate the object in "AbstractHashedMap(Map)".
+
+
+ Fixed javadoc of "LRUMap" wrt to the maxSize parameter of the constructor.
+
+
+ Added new abstract class "CatchAndRethrowClosure" that re-throws any checked exception
+ as unchecked "FunctorException".
+
Use of final keyword where applicable, minor performance improvements by properly
initializing the capacity of newly created collections when known in advance.
+
+ "SetUniqueList#subList()#contains(Object)" will now correctly check the subList
+ rather than the parent list.
+
+
+ Added method "CollectionUtils#subtract(Iterable, Iterable, Predicate)".
+
+
+ "SetUniqueList#set(int, Object)" will now correctly enforce the uniqueness constraint.
+
+
+ Improved javadoc for "Unmodifiable*" classes wrt behavior when the users tries
+ to modify the collection.
+
+
+ Calling "CollectionUtils#sizeIsEmpty(null)" will now return true.
+
Added methods "CollectionUtils#merge(...)" to merge two sorted Collections
into a sorted List using the standard O(n) merge algorithm.
+
+ "CaseInsensitiveMap" will now convert input strings to lower-case in a
+ locale-independant manner.
+
Added support for using custom "Equator" objects in "EqualPredicate".
+
+ Added method "CollatingIterator#getIteratorIndex()".
+
+
+ Fixed javadoc for "ListUtils#transformedList(List)" to clarify that existing objects
+ in the list are not transformed.
+
+
+ Added method "CollectionUtils#extractSingleton(Collection)".
+
Added serialization support for "TreeBidiMap".
@@ -252,7 +342,7 @@
Removed unused variables in "TreeBidiMap".
-
+
The static factory methods have been renamed from "getInstance()" to a camel-case
version of the class name, e.g. "truePredicate()" for class "TruePredicate".
@@ -276,7 +366,7 @@
Return concrete class in static factory methods instead of base class interface
(except for Unmodifiable decorators).
-
+
"CollectionUtils#size(Collection)" now returns 0 when called with null as input.