commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor Saprykin (JIRA)" <>
Subject [jira] Commented: (COLLECTIONS-360) FilterListIterator#hasNext throws exception (associate with JUnit tests)
Date Mon, 13 Dec 2010 08:57:01 GMT


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:
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|](your
case) is thrown.
I think, you're partialy right - {{FilterListIterator}} implements {{Iterator}} interface
and [Iterator.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:
>             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.

View raw message