Patch applied, thanks. Longer term, I'm sure that a CursorableList decorator would be more useful. After all, why should this no concurrent mods exception code be limited to a LinkedList?
Stephen ----- Original Message ----- From: "Simon Kitching" <[EMAIL PROTECTED]> To: "Jakarta Commons Developers List" <[EMAIL PROTECTED]> Sent: Saturday, September 27, 2003 7:19 AM Subject: Re: [collections] WeakReferences for CursorableLinkedList > Hmm .. something appears to have filtered out the attachments. > Here they are again, in .tar.gz format this time. > > On Sat, 2003-09-27 at 18:07, Simon Kitching wrote: > > 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] > ---------------------------------------------------------------------------- ---- > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
