[
https://issues.apache.org/jira/browse/COLLECTIONS-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18110207#comment-18110207
]
Manfred Baedke commented on COLLECTIONS-900:
--------------------------------------------
??though technically speaking nothing is said about the argument of
addIterator??
Yes, technically the hasNext() call on the parameter doesn't break the
contract. Also, hasNext() is a method that people don't expect to have side
effects, so I guess that we might be not the only consumers running into this.
> IteratorChain#addIterator() does not work properly with IteratorChain
> parameters
> --------------------------------------------------------------------------------
>
> Key: COLLECTIONS-900
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-900
> Project: Commons Collections
> Issue Type: Bug
> Components: Iterator
> Affects Versions: 4.6.0
> Reporter: Manfred Baedke
> Priority: Major
>
> [https://github.com/apache/commons-collections/pull/628] changed
> IteratorChain#addIterator(final Iterator<? extends E> iterator) so that if
> the parameter iterator is an IteratorChain itself, the method will add it's
> internal iteratorQueue instead of the iterator. Unfortunately,
> IteratorChain#hasNext() modifies this internal queue, so that #addIterator()
> will not work properly anymore. A PR with a test case is linked below.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)