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 < 0 or index > 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 < 0 or index >
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 < 0 or index >=
size()” .
(My version is 4.4)
Best,
Alex
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]