SearchCursorImpl breaks java.lang.Iterable
------------------------------------------
Key: DIRSHARED-124
URL: https://issues.apache.org/jira/browse/DIRSHARED-124
Project: Directory Shared
Issue Type: Bug
Affects Versions: 1.0.0-M3
Reporter: Gerald Turner
Priority: Minor
Code like:
SearchCursor search = connection.search(...);
for (Response response : search) { ... }
Does not work (no elements iterated), even though SearchCursor is advertised as
being Iterable<Response>.
The problem begins with the CursorIterator constructor:
public CursorIterator( Cursor<E> cursor )
{
this.cursor = cursor;
this.available = cursor.available();
}
The available field will be set to false for SearchCursorImpl, just as the
javadoc in Cursor implies "Determines whether or not a call to get() will
succeed." - since next() must be called first.
Initially I thought about patching the CursorIterator to call next() instead of
available(), however next throws an exception and it is impractical to handle
an exception in the iterator constructor.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira