forked from apache/commons-collections
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE-NOTES.txt
350 lines (277 loc) · 21.5 KB
/
RELEASE-NOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
Apache Commons Collections 4.4 RELEASE NOTES
The Apache Commons Collections package contains types that extend and augment the Java Collections Framework.
Maintenance release.
Changes in this version include:
New features:
o COLLECTIONS-715: Implement Collection's removeIf(). Thanks to morningmemo, Gary Gregory.
o COLLECTIONS-719: Create a PropertiesFactory and SortedPropertiesFactory. Thanks to Gary Gregory.
o COLLECTIONS-719: Support Transformer for LazyList #52. Thanks to Stephan Windmüller, Bruno P. Kinoshita.
o COLLECTIONS-723: Make use of FunctionalInterface #48. Thanks to Eitan Adler, SOC, Bruno P. Kinoshita.
Fixed Bugs:
o COLLECTIONS-710: NullPointerExceptions in CompositeCollection, CompositeSet, and CompositeMap. Thanks to Yu Shi, Gary Gregory.
Changes:
o COLLECTIONS-718: Fix LRUMap exception message. Thanks to Eitan Adler.
o COLLECTIONS-716: Don't include email address in Exception messages. Thanks to Sebb.
For complete information on Apache Commons Collections, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Collections website:
https://commons.apache.org/proper/commons-collections/
Download page: https://commons.apache.org/proper/commons-collections/download_pool.cgi
===============================================================================
Apache Commons Collections 4.3 RELEASE NOTES
The Apache Commons Collections package contains types that extend and augment the Java Collections Framework.
Update from Java 7 to Java 8, bug fixes, and small changes.
Changes in this version include:
New features:
o COLLECTIONS-696: AbstractReferenceMap made easier for subclassing; PR #51. Thanks to Maxim Solodovnik.
Fixed Bugs:
o COLLECTIONS-691: Use boolean operator for boolean result. Thanks to Eitan Adler.
o COLLECTIONS-701: StackOverflowError in SetUniqueList.add() when it receives itself. Thanks to Shin Hong, Don Jeba.
o COLLECTIONS-703: The PassiveExpiringMap#put() method should return the previous record only if not expired. Thanks to Tomas Tulka.
o COLLECTIONS-706: Add SetUtils.unmodifiableSet(T... items) method. Thanks to Richard Eckart de Castilho, Gary Gregory.
Changes:
o COLLECTIONS-688: Update platform requirement from Java 7 to 8.
o COLLECTIONS-689: Link to Javadoc API broken. Thanks to Richard Walker.
o COLLECTIONS-692: Replace use of deprecated Class#newInstance() PR #49. Thanks to Gary Gregory, Eitan Adler.
Please NOTE: Clirr errors reported for this release are false positive, this is proved by Japicmp report
And manual testing.
For complete information on Apache Commons Collections, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Collections website:
https://commons.apache.org/proper/commons-collections/
Download page: https://commons.apache.org/proper/commons-collections/download_collections.cgi
===============================================================================
Apache Commons Collections 4.2 RELEASE NOTES
The Apache Commons Collections package contains types that extend and augment the Java Collections Framework.
Update from Java 6 to Java 7, bug fixes, and small changes.
Changes in this version include:
New features:
o COLLECTIONS-681: Add test for MultiSetUtils Thanks to Stephan Fuhrmann.
o COLLECTIONS-658: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility.
o COLLECTIONS-589: Add null-safe MapUtils.size(Map<?, ?>) method. Thanks to Gary Gregory.
o COLLECTIONS-586: PatriciaTrie prefixMap clear throws NullPointerException. Thanks to Shailender Bathula, Gary Gregory.
o COLLECTIONS-654: Add class SortedProperties to sort keys.
o COLLECTIONS-668: Add CollectionUtils containsAny method for primitive array: org.apache.commons.collections4.CollectionUtils.containsAny(Collection<?>, T...). Thanks to Gary Gregory.
o COLLECTIONS-575: Synchronized queue wrapper in QueueUtils. Thanks to Guram Savinov, Grzegorz Rożniecki, Bruno P. Kinoshita, Gary Gregory.
o COLLECTIONS-670: Add org.apache.commons.collections4.IteratorUtils.first(Iterator). Thanks to Gary Gregory.
o COLLECTIONS-671: Add org.apache.commons.collections4.IterableUtils.first(Iterable). Thanks to Gary Gregory.
Fixed Bugs:
o COLLECTIONS-599: HashEntry array object naming data initialized with double the size during deserialization. Thanks to Tejas Patel, Saleem Akbar, Gary Gregory.
o COLLECTIONS-662: Unit tests MapUtilsTest and ListIteratorWrapperTest no longer fail on Java 9. Thanks to Vamsi Kavuri.
o COLLECTIONS-661: Intermittent test failures in Windows for HashSetValuedHashMap.
o COLLECTIONS-660: Uncomment test in AbstractMapTest regarding LRUMap equals.
o COLLECTIONS-656: Fix site build on Java 8.
o COLLECTIONS-653: Update Javadoc to Build on Java 1.8.
o COLLECTIONS-606: Build status, Coverage status and Maven central weren't in README.md Thanks to Vamsi Kavuri.
o COLLECTIONS-594: Website spelling error: MultiValuedMapList. Thanks to Javen O'Neal.
o COLLECTIONS-597: Correction of Javadoc for org.apache.commons.collections4.functors.CatchAndRethrowClosure. Thanks to Enrique.
o COLLECTIONS-678: The verification of unsupported iterator methods is not complete. Thanks to Oscar Luis Vera Pérez.
o COLLECTIONS-673: ListUtils.partition potential integer overflow. Thanks to John Mark, Stephan Fuhrmann.
Changes:
o COLLECTIONS-602: Improve efficiency of DefaultedMap.get. Thanks to John Mark.
o COLLECTIONS-603: Small improvements for generics, conditional statements, and warnings suppressions. Thanks to Artem Konovalov.
o COLLECTIONS-655: Update platform from Java 6 to Java 7.
o COLLECTIONS-666: org.apache.commons.collections4.ListUtils.union(List, List) should pre-allocate result list. Thanks to BELUGA BEHR.
o COLLECTIONS-669: Update org.apache.commons.collections4.CollectionUtils.addAll(Collection<C>, C[]) to addAll(Collection<C>, C...). Thanks to BELUGA BEHR, Gary Gregory.
For complete information on Apache Commons Collections, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Collections website:
https://commons.apache.org/proper/commons-collections/
Download page: https://commons.apache.org/proper/commons-collections/download_collections.cgi
===============================================================================
Apache Commons Collections
Version 4.1
RELEASE NOTES
INTRODUCTION:
Apache Commons Collections is a project to develop and maintain collection
classes based on and inspired by the JDK collection framework.
This v4.1 release is a minor and security release, fixing several bugs present in
previous releases of the 4.X branch. Additionally, this release provides a mitigation
for a known remote code exploitation via the standard java object serialization
mechanism. Serialization support for unsafe classes in the functor package has been
completely removed (classes do not implement the Serializable interface anymore).
For more details, please refer to COLLECTIONS-580.
All users are strongly encouraged to update to this release.
Compatibility
-------------
o Java 6 or later is now required (previous version 4.0 required Java 5).
o This release is source and binary compatible with the previous 4.0 release
of Commons Collections with the exception that some classes in the functor
package do not implement the Serializable interface anymore (see COLLECTIONS-580).
o some unit tests are disabled when executed with an IBM JDK 6 due to a faulty
java.util.TreeMap implementation.
Major changes since 4.0
-----------------------
o Added interface MultiSet (package multiset)
o Added interfaces MultiValuedMap, ListValuedMap and SetValuedMap (package multimap)
o Added fluent API for Iterable instances (class FluentIterable)
Changes
-------
o [COLLECTIONS-580]: 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.
o [COLLECTIONS-551]: Deprecated various method in "CollectionUtils" in favor of similar
methods in the newly introduced "IterableUtils".
o [COLLECTIONS-570]: All constructors and static factory methods will now throw a "NullPointerException"
if a required input argument is null. Previously sometimes a "IllegalArgumentException"
was used.
o [COLLECTIONS-571]: Deprecated methods "synchronizedCollection(Collection)" and
"unmodifiableCollection(Collection)" in class "CollectionUtils", the corresponding
methods in "java.util.Collections" should be used instead.
o [COLLECTIONS-562]: Upgraded minimum java requirement to Java 6 (up from Java 5).
New features
------------
o [COLLECTIONS-508]: 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.
o [COLLECTIONS-567]: 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.
o [COLLECTIONS-572]: 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.
o [COLLECTIONS-557]: Added support to specify the initial size of a "LRUMap". Thanks to Philippe Mouawad.
o [COLLECTIONS-565]: Added decorators for "NavigableSet" interface.
o [COLLECTIONS-464]
+COLLECTIONS-442]: Added new class "FluentIterable" to support a fluent API for manipulating
Iterable instances. Additionally various supporting methods have been
added to "IterableUtils" and "IteratorUtils".
o [COLLECTIONS-464]: Added new "ZippingIterator" and factory methods "IteratorUtils#zippingIterator(...)".
o [COLLECTIONS-464]: Added new decorator "SkippingIterator" and factory methods "IteratorUtils#skippingIterator(...)".
o [COLLECTIONS-556]: Added method "SetUtils#newIdentityHashSet()" which returns a new identity HashSet
using reference-equality instead of object-equality.
o [COLLECTIONS-395]: Added method "LRUMap#get(Object, boolean)" that allows to query the map
without affecting the least recently used order. Thanks to David Hawthorne.
o [COLLECTIONS-427]: Added "toString(...)" methods to newly created "IterableUtils" and existing "IteratorUtils"
to get a string representation of an Iterable/Iterator instance similar to "Arrays#toString(...)".
Thanks to Gonçalo Marques.
o [COLLECTIONS-539]: Changed scope of "CircularFifoQueue#isAtFullCapacity()" to public. Thanks to Guram Savinov.
o [COLLECTIONS-511]: Added new methods "IterableUtils#partition(...)" to partition an input collection
into separate output collections based on evaluation of one or more predicates.
Thanks to Nathan Blomquist, Brent Worden.
o [COLLECTIONS-529]: Added methods "removeAll(...)" and "retainAll(...)" to "CollectionUtils" that perform
equality checks using the provided "Equator" object instead of "Object#equals()".
Thanks to Alexander Muthmann, Dipanjan Laha.
o [COLLECTIONS-503]: Added new transformer "IfTransformer" and factory methods "TransformerUtils#ifTransformer(...)"
which replace "TransformerUtils#switchTransformer(Predicate, Transformer, Transformer)".
Thanks to Josh Cain.
o [COLLECTIONS-471]: Added new decorator "BoundedIterator" and factory methods "IteratorUtils#boundedIterator(...)".
Thanks to Radford Tam.
Fixed Bugs
----------
o [COLLECTIONS-580]: Added validation when de-serializing a "MultiValueMap#ReflectionFactory":
only Collection classes are allowed, otherwise an UnsupportedOperationException
will be thrown during de-serialization.
o [COLLECTIONS-576]: Subclasses of MultiKey did not re-calculate their hashcode after de-serialization.
Thanks to Stephan Roch.
o [COLLECTIONS-566]: "IteratorUtils#collate(...)" methods did not use natural ordering when a
null comparator was provided.
o [COLLECTIONS-558]: Changed return type of "ListOrderedSet#remove(int)" from Object to the generic
type parameter. Thanks to Felix Rabe.
o [COLLECTIONS-555]: Added clarification to javadoc of "TreeBag#add(Object)" wrt null arguments.
Thanks to M Kim.
o [COLLECTIONS-427]: Reverted performance improvement for "SetUniqueList#retainAll(Collection)"
introduced in 4.0. Added clarifying javadoc wrt runtime complexity instead.
o [COLLECTIONS-426]: Reverted performance improvement for "ListOrderedSet#retainAll(Collection)"
introduced in 4.0. Added clarifying javadoc wrt runtime complexity instead.
o [COLLECTIONS-530]: 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. Thanks to Erik.
o [COLLECTIONS-545]: Documented runtime complexity of "CollectionUtils#removeAll(Collection, Collection).
Thanks to Oswaldo Olivo.
o [COLLECTIONS-543]: "AbstractCollectionDecorator" doesn't forward equals and hashCode anymore.
o [COLLECTIONS-544]: Documented runtime complexity of "CollectionUtils#retainAll(Collection, Collection).
Thanks to Oswaldo Olivo.
o [COLLECTIONS-542]: "AbstractHashedMap" still inherits from "AbstractMap", contrary to what
the class javadoc stated. The inheritance will now be removed in v5.0.
o [COLLECTIONS-525]: The map returned by "PatriciaTrie#prefixMap()" did not contain all keys
that are prefixed by the given search key in some rare cases. Thanks to Zigler Zhang.
o [COLLECTIONS-537]: Harmonized signature of factory methods for functor-related classes which take
a collection as input with their array counterparts. Thanks to Frank Jakop.
o [COLLECTIONS-540]: Added overloaded method "CollectionUtils#get(Enumeration, int)" and simplified
code for "CollectionUtils#get(Object, int)". Thanks to Daniel Stewart, Issam El Atif.
o [COLLECTIONS-536]: Improved check for null input in "MapUtils#putAll(Map, Object[])". Thanks to Tagir Valeev.
o [COLLECTIONS-534]: Added clarifying javadoc wrt runtime complexity of "CollectionBag#retainAll".
Thanks to Oswaldo Olivo.
o [COLLECTIONS-531]: Use correct type bounds in
"CollectionUtils#isEqualCollection(Collection, Collection, Equator)" to
prevent a "ClassCastException" at runtime for invalid inputs. Thanks to Dipanjan Laha.
o [COLLECTIONS-523]: Removed unneeded private method in "PassiveExpiringMap". Thanks to Thiago Andrade.
o [COLLECTIONS-516]: Added clarification to the javadoc of "MapUtils#toProperties(Map)" in case
of null keys/values. Thanks to Cyrille Artho.
o [COLLECTIONS-524]: "ListOrderedSet#listOrderedSet(List)" did not remove duplicates from the
input list as advertised in the javadoc. Thanks to J Goodfellow.
o [COLLECTIONS-521]: "MultiKeyMap" was throwing a "NullPointerException" for various operations
if two key arguments have been used and the second was "null". Thanks to Maxime Nay.
o [COLLECTIONS-522]: Updated code example for "PredicatedList". Thanks to Erik.
o [COLLECTIONS-512]: "TransformingComparator" and "FixedOrderComparator" did not comply with
the contract of "Object#equals". Thanks to Cyrille Artho.
o [COLLECTIONS-510]: Fix compilation errors when using source level 1.8 and a recent java 8 compiler.
Thanks to Hollis Waite.
o [COLLECTIONS-509]: Clarified javadoc of "CollectionBag" wrt changes from the original Bag interface.
o [COLLECTIONS-507]: Removed wrong type bounds for "ComparatorUtils#chainedComparator(...)". Thanks to Gerson.
o [COLLECTIONS-506]: 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.
Thanks to Anthony Communier.
For complete information on Apache Commons Collections, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Collections website:
https://commons.apache.org/proper/commons-collections/
===============================================================================
Apache Commons Collections
Version 3.2.2
RELEASE NOTES
INTRODUCTION:
Commons collections is a project to develop and maintain collection classes
based on and inspired by the JDK collection framework.
This release is JDK1.3 compatible, and does not use JDK1.5 generics.
This v3.2.2 release is a bugfix release, fixing several bugs present in the previous
releases of the 3.2 branch. Additionally, this release provides a mitigation for a
known remote code exploitation via the standard java object serialization mechanism.
By default, serialization support for unsafe classes in the functor package is
disabled and will result in an exception when either trying to serialize or de-serialize
an instance of these classes. For more details, please refer to COLLECTIONS-580.
All users are strongly encouraged to update to this release.
Changes in this version include:
CHANGES
=======
o COLLECTIONS-580: 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.
BUGFIXES
========
o COLLECTIONS-538: "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. Thanks to Trejkaz.
o COLLECTIONS-447: Tree traversal with a TreeListIterator will not be affected anymore by
the removal of an element directly after a call to previous(). Thanks to Jeffrey Barnes.
o COLLECTIONS-444: SetUniqueList.set(int, Object) now works correctly if the object to be inserted
is already placed at the given position. Thanks to Thomas Vahrst, John Vasileff.
o COLLECTIONS-350: Removed debug output in "MapUtils#getNumber(Map)". Thanks to Michael Akerman.
o COLLECTIONS-335: Fixed cache assignment for "TreeBidiMap#entrySet". Thanks to sebb.
o COLLECTIONS-334: Synchronized access to lock in "StaticBucketMap#size()". Thanks to sebb.
o COLLECTIONS-307: "SetUniqueList#subList()#contains(Object)" will now correctly check the subList
rather than the parent list. Thanks to Christian Semrau.
o COLLECTIONS-304: "SetUniqueList#set(int, Object)" will now correctly enforce the uniqueness constraint.
Thanks to Rafa? Figas,Bjorn Townsend.
o COLLECTIONS-294: "CaseInsensitiveMap" will now convert input strings to lower-case in a
locale-independent manner. Thanks to Benjamin Bentmann.
o COLLECTIONS-266: "MultiKey" will now be correctly serialized/de-serialized. Thanks to Joerg Schaible.
o COLLECTIONS-261: "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. Thanks to ori.
o COLLECTIONS-249: "SetUniqueList.addAll(int, Collection)" now correctly add the collection at the
provided index. Thanks to Joe Kelly.
o COLLECTIONS-228: "MultiValueMap#put(Object, Object)" and "MultiValueMap#putAll(Object, Collection)"
now correctly return if the map has changed by this operation.
o COLLECTIONS-219: "CollectionUtils#removeAll" wrongly called "ListUtils#retainAll". Thanks to Tom Leccese.
o COLLECTIONS-217: Calling "setValue(Object)" on any Entry returned by a "Flat3Map" will now
correctly set the value for the current entry. Thanks to Matt Bishop.
For complete information on Apache Commons Collections, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Collections website:
https://commons.apache.org/collections/