Hi,
I was wondering whether there’s a typo 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 the boundary in the comment might be changed to "index &lt; 0 or index &gt;= 
size()” .

(My version is 4.4)

Best,
Alex





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to