You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "XiangzheXu (Jira)" <ji...@apache.org> on 2019/08/20 15:21:00 UTC
[jira] [Created] (COLLECTIONS-727) A potential misleading comment
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)