Hi,

The CursorableLinkedList class returns "cursors" which act like
ListIterators except that they continue to work when the list is
modified via other means (unlike ListIterator which throws
ConcurrentModificationException).

Unfortunately, there is one critical difference between "cursors" and
ListIterators; the cursor objects returned *must* be explicitly closed
in order to avoid memory leaks, because the CursorableLinkedList class
keeps a list of the existing cursors.

The attached patch uses weak references to the cursor objects in order
to avoid this problem; with this patch, cursor objects can now
transparently be passed to methods expecting ListIterators.

I noticed that the unit tests for this class also failed to test one
particular concept: that cursors continune to work under concurrent
modification. Given that this is the core functionality of this class, I
have added tests for this.

I hope this patch is acceptable. 

Regards,

Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to