I noticed some unusual behaviour in an application yesterday so I took a dive into the source code to see whether it might be something obvious.
In amongst some business logic for cache refreshing I found a call to CollectionUtils.removeAll. I hadn't personally used this CollectionUtils class before, so I decided to see what functionality it offered and how it worked. The Javadoc looked okay, but the implementation was clearly broken - delegating to a method called retainAll which is very different to what was intended.
Since this CollectionUtils class is part of the Apache commons Collections component I went looking for whether this was a known issue, and whether it had been fixed in a later version.
According to the Apache Jira system the problem was recognised and fixed 5 years ago: https://issues.apache.org/jira/browse/COLLECTIONS-219
Unfortunately it would appear that there has not been a new release in those 5 years.
I suppose that there would not be many applications using the broken removeAll method, as it was only introduced in the last released version.
Perhaps Commons Collections should be moved into the Dormant projects section of Apache?
Post a Comment