[ https://issues.apache.org/jira/browse/COLLECTIONS-814?focusedWorklogId=818294&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-818294 ]
ASF GitHub Bot logged work on COLLECTIONS-814: ---------------------------------------------- Author: ASF GitHub Bot Created on: 19/Oct/22 02:12 Start Date: 19/Oct/22 02:12 Worklog Time Spent: 10m Work Description: kinow closed pull request #340: COLLECTIONS-814 CollectionUtils.removeAll() not throwing NPE URL: https://github.com/apache/commons-collections/pull/340 Issue Time Tracking ------------------- Worklog Id: (was: 818294) Time Spent: 40m (was: 0.5h) > CollectionUtils.removeAll() not throwing proper NullPointerException(NPE) if > the first parameter is empty > --------------------------------------------------------------------------------------------------------- > > Key: COLLECTIONS-814 > URL: https://issues.apache.org/jira/browse/COLLECTIONS-814 > Project: Commons Collections > Issue Type: Bug > Affects Versions: 4.4 > Reporter: Elia Bertolina > Assignee: Bruno P. Kinoshita > Priority: Major > Fix For: 4.5 > > Time Spent: 40m > Remaining Estimate: 0h > > The CollectionUtils.removeAll(Collection<E> collection, Collection<?> remove) > does not throw a NullPointerException(NPE) when the “remove” parameters is > null, but only if the “collection” parameter is empty. > In the documentation it is stated that an NPE will be thrown if any of the > parameters is null. > However, in this test case: > > {code:java} > public class CollectionUtils_failure_Test { > public void test() throws Throwable { > LinkedList<InstanceofPredicate> linkedList = new > LinkedList<InstanceofPredicate>(); > try { > Collection<InstanceofPredicate> collection = > CollectionUtils.removeAll( > (Collection<InstanceofPredicate>)linkedList, > (Collection<?>) null); > org.junit.Assert.fail(); > } catch (java.lang.NullPointerException e) { > //Exception caught and test successful > } > } > } {code} > > This is a special case (first parameter needs to be empty and the second > needs to be null) but this behavior is missing in the documentation. While > this behavior is somehow correct (removing a null Object from an empty > Collection we should obtain an empty Collection) I think throwing an NPE > would be more in line with the documentation provided. -- This message was sent by Atlassian Jira (v8.20.10#820010)