You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Igor Saprykin (JIRA)" <ji...@apache.org> on 2010/12/13 09:57:01 UTC
[jira] Commented: (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: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.