[
https://issues.apache.org/jira/browse/COLLECTIONS-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12970749#action_12970749
]
Igor Saprykin commented on COLLECTIONS-360:
-------------------------------------------
As far as I understand expression "{{FilterListIterator(var9)}}" resolves into
{{FilterListIterator(Predicate<? super E> predicate)}} constructor. Here's what
it's javadoc is saying:
{quote}{noformat}
Constructs a new <code>FilterListIterator</code> that will not function
until {...@link #setListIterator(ListIterator) setListIterator} is invoked.
@param predicate the predicate to use.{noformat}{quote}
So if a {{ListIterator}} isn't specified than
[NullPointerException|http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html](your
case) is thrown.
I think, you're partialy right - {{FilterListIterator}} implements {{Iterator}}
interface and
[Iterator.hasNext()|http://download.oracle.com/javase/6/docs/api/java/util/Iterator.html#hasNext()]
doesn't specify any exceptions to be thrown.
If it's really an issue maybe these two constructors -
{{FilterListIterator(Predicate<? super E> predicate)}} and
{{FilterListIterator(ListIterator<? extends E> iterator )}} should be
deprecated?
> FilterListIterator#hasNext throws exception (associate with JUnit tests)
> ------------------------------------------------------------------------
>
> Key: COLLECTIONS-360
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-360
> Project: Commons Collections
> Issue Type: Bug
> Affects Versions: 3.2
> Environment: ubuntu
> Reporter: Sai Zhang
>
> Hi,
> I found the some of the iterator classes does not fulfill the iterator
> specification of JDK.
> e.g. hasNext() should never throw exception.
> Here is an automatically generated junit test (I am now writing a tool)
> {code:java}
> public void test233() throws Throwable {
> java.lang.Integer var6 = new java.lang.Integer(0);
> org.apache.commons.collections.list.GrowthList var7 = new
> org.apache.commons.collections.list.GrowthList(var6);
> org.apache.commons.collections.Predicate var9 =
> org.apache.commons.collections.PredicateUtils.anyPredicate((java.util.Collection)var7);
> java.lang.Long var10 = new java.lang.Long(10L);
> org.apache.commons.collections.iterators.FilterListIterator var13 = new
> org.apache.commons.collections.iterators.FilterListIterator(var9);
> //this line throws exception!
> var13.hasNext();
> }
> {code}
> could you please check it to confirm whether it is bug or I misunderstand the
> specification of apache common collections?
> thanks,
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.