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 < 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 it would be better if we could change the boundary in the comment to `index
< 0 or index >= size()`.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)