[ https://issues.apache.org/jira/browse/COLLECTIONS-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13139506#comment-13139506 ]
SHIN HWEI TAN commented on COLLECTIONS-385: ------------------------------------------- Yes, the trunk currently have: /** * Adds all elements in the iteration to the given collection. * * @param collection * the collection to add to, must not be null * @param iterator * the iterator of elements to add, must not be null * @return a boolean indicating whether the collection has changed or not. * @throws NullPointerException * if the collection or iterator is null */ public static <C> boolean addAll(Collection<C> collection, Iterator<? extends C> iterator) { boolean changed = false; while (iterator.hasNext()) { changed |= collection.add(iterator.next()); } return changed; } /** * Adds all elements in the array to the given collection. * * @param collection * the collection to add to, must not be null * @param elements * the array of elements to add, must not be null * @throws NullPointerException * if the collection or array is null */ public static <C> boolean addAll(Collection<C> collection, C[] elements) { ............ } /** * Adds all elements in the iteration to the given collection. * * @param collection * the collection to add to, must not be null * @param iterator * the iterator of elements to add, must not be null * @return a boolean indicating whether the collection has changed or not. * @throws NullPointerException * if the collection or iterator is null */ public static <C> boolean addAll(Collection<C> collection, Iterator<? extends C> iterator) { /** * Adds all elements in the iteration to the given collection. * * @param collection * the collection to add to, must not be null * @param iterator * the iterator of elements to add, must not be null * @return a boolean indicating whether the collection has changed or not. * @throws NullPointerException * if the collection or iterator is null */ public static <C> boolean addAll(Collection<C> collection, Iterator<? extends C> iterator) { ..... } When called with an empty iterator/elements and a null collection (i.e., ArrayList al=new ArrayList(); addAll((Collection)null, new al.iterator())"), the method still executes normally without throwing any exception. > Inconsistent Javadoc comment and code in addAll(Collection, Object[]) in > org.apache.commons.collections.CollectionUtils > ----------------------------------------------------------------------------------------------------------------------- > > Key: COLLECTIONS-385 > URL: https://issues.apache.org/jira/browse/COLLECTIONS-385 > Project: Commons Collections > Issue Type: Bug > Components: Collection > Affects Versions: 2.1, 2.1.1, 3.0, 3.1, 3.2 > Environment: Platform Independent > Reporter: SHIN HWEI TAN > Labels: javadoc, nullpointerexception > Original Estimate: 5m > Remaining Estimate: 5m > > The Javadoc comment below states that the method "throws NullPointerException > if the collection or array is null". > /** > * Adds all elements in the array to the given collection. > * > * @param collection the collection to add to, must not be null > * @param elements the array of elements to add, must not be null > * @throws NullPointerException if the collection or array is null > */ > public static void addAll(Collection collection, Object[] elements) { > for (int i = 0, size = elements.length; i < size; i++) { > collection.add(elements[i]); > } > } > However, when called with an empty array and a null collection (i.e., > "addAll((Collection)null, new Object[])"), the method executes normally > without throwing any exception. > Suggested Fixes: > 1. Add code "if (collection == null) throw NullPointerException();" at the > beginning of the method body. > or > 2. Remove "@throws NullPointerException if the collection or array is null" > from the Javadoc. > or > 3. Change "@throws NullPointerException if the collection or array is null" > to "@throws NullPointerException if the array is null or (the array is > non-empty and the collection is null)". -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira