[jira] [Created] (COLLECTIONS-727) A potential misleading comment

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (COLLECTIONS-727) A potential misleading comment

ASF GitHub Bot (Jira)
XiangzheXu created COLLECTIONS-727:
--------------------------------------

             Summary: A potential misleading comment
                 Key: COLLECTIONS-727
                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-727
             Project: Commons Collections
          Issue Type: Bug
          Components: Iterator
    Affects Versions: 4.4
            Reporter: XiangzheXu


I was wondering whether there's something wrong in the @throws IndexOutOfBoundsException condition for the `setIterator(final int index, final Iterator<? extends E> iterator)` method in the class `org.apache.commons.collections4.iterators.CollatingIterator<E>`.

The method and its Javadoc comment are shown as follows.



/**
 * Sets the iterator at the given index.
 *
 * @param index index of the Iterator to replace
 * @param iterator Iterator to place at the given index
 * @throws IndexOutOfBoundsException if index &lt; 0 or index &gt; size()
 * @throws IllegalStateException if iteration has started
 * @throws NullPointerException if the iterator is null
 */
public void setIterator(final int index, final Iterator<? extends E> iterator) {
    checkNotStarted();
    if (iterator == null) {
        throw new NullPointerException("Iterator must not be null");
    }
    iterators.set(index, iterator);
}



The boundary of the parameter index is marked as `index &lt; 0 or index &gt; size()`
in the comment.
Nevertheless, the `set(index, iterator)` method would throw an IndexOutOfBoundsException when the index is equal to `size()`.
So it would be better if we could change the boundary in the comment to `index &lt; 0 or index &gt;= size()`.




--
This message was sent by Atlassian Jira
(v8.3.2#803003)