You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Jochen Wiedmann (JIRA)" <ji...@apache.org> on 2011/03/01 23:17:36 UTC

[jira] Resolved: (COLLECTIONS-360) FilterListIterator#hasNext throws exception (associate with JUnit tests)

     [ https://issues.apache.org/jira/browse/COLLECTIONS-360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jochen Wiedmann resolved COLLECTIONS-360.
-----------------------------------------

       Resolution: Fixed
    Fix Version/s: 3.2.2
         Assignee: Jochen Wiedmann

Diagnosis: Agreed that the contract of hasNext() forbids throwing an NPE and this is a bug.
Also agreeing with Igor that the constructors allowing such behaviour are essentially broken. Nevertheless we have them and so we must support them for binary compatibility.
Hence eliminating the NPE for the FilterListIterator.

Zhang writes that "some of the iterator classes" have this problem. OTOH, this is nowhere made clear. Feel free to reopen, should you find any more classes in question.


> 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
>            Assignee: Jochen Wiedmann
>             Fix For: 3.2.2
>
>         Attachments: FilterListIterator.java
>
>
> 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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira