Thanks Mattias. Do you want me to log a ticket for that ? --Pierre
On Wed, May 25, 2011 at 1:06 PM, Mattias Persson <[email protected]>wrote: > Hi Pierre, > > that's a correct observation and I think the reason for it is that it was > easier to write it like that and then it was left in that state. I'm pretty > sure I've never some across anyone, before you, that have had a problem > with > it. Nonetheless I think it'd be nice to fix it, and at the same time take a > look at all the iterables in there. > > 2011/5/25 Pierre Fouche <[email protected]> > > > Hi, > > > > This might seem a minor point but... > > > > The method Node.getRelationships() returns Iterable<Relationships>, > > implemented by IntArrayIterator. It turns out that IntArrayIterator > > implements both Iterable and Iterator, its iterator() method returning > > itself. > > > > My understanding was that an Iterable was supposed to be stateless, > whereas > > an Iterator is obviously stateful. Having a stateless Iterable makes it > > useable multiple times in a foreach loop, as it returns a new Iterator > > whenever iterator() is called. See for instance > > > > > http://stackoverflow.com/questions/839178/why-is-javas-iterator-not-an-iterable > > > > Unfortunately, IntArrayIterator is a stateful Iterable. > > > > I've noticed that Traverser, which extends Iterable, is implemented by > > TraverserImpl, which does not implement Iterator, but returns a new > > TraverserIterator whenever iterator() is called. This seems right to me. > > > > I actually ran into this stateless/stateful issue when I refactored a > piece > > of code that was using the traversal framework and now uses > > getRelationships > > instead. Some of the tests failed because they were reusing a resulting > > Iterable. > > > > Is the design of IntArrayIterator intentional? Or is it an oversight? > > > > Thanks, > > Pierre > > _______________________________________________ > > Neo4j mailing list > > [email protected] > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > -- > Mattias Persson, [[email protected]] > Hacker, Neo Technology > www.neotechnology.com > _______________________________________________ > Neo4j mailing list > [email protected] > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list [email protected] https://lists.neo4j.org/mailman/listinfo/user

