commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ja...@carmanconsulting.com
Subject Re: [collections] deprecate CursorableLinkedList?
Date Thu, 18 Sep 2003 17:07:24 GMT
If I append something asynchronously to the end of the list while a Cursor
is open, will the cursor pick that up?  Or, does a cursor merely take a
snap-shot of the underlying list and iterate over whatever is there
currently?  Just curious.

----- Original Message ----- 
From: "Rodney Waldhoff" <rwaldhoff@apache.org>
To: <commons-dev@jakarta.apache.org>
Sent: Thursday, September 18, 2003 1:03 PM
Subject: [collections] deprecate CursorableLinkedList?


> If there are no complaints, I'd like to deprecate CursorableLinkedList for
> the 3.0 collections release, to be removed in the 4.0 release.
>
> CursorableLinkedList provides a List implementation that supports a type
> of Iterator (called a Cursor) that isn't bothered by concurrent
> modifications--you can safely add or remove items before or after the
> current location of the cursor and the cursor will simply see the current
> status of the list when it gets there.
>
> While this functionality works fine, it's too complicated by half, and
> there are bugs in other areas of the interface (well, the only bug I'm
> aware of is that it isn't really Serializable, despite what the interface
> claims.)
>
> I suspect that commons-pool is the only consumer of this class, where it
> is used to walk through the set of pooled objects while borrowObject or
> returnObjct calls may asynchronously modify the underlying list.  By
> deprecating (and eventually removing) this class, we could either move
> CursorableLinkedList over to pool, or (my preference) replace the
> CursorableLinkedList with a significantly simpler but slightly less
> predictable approach (like iterating via list.get(counter++%list.size()),
> but that's a topic for another thread.
>
> Contrariwise, if we'd like to keep CursorableLinkedList, we should either
> fix the Serialization or remove the "implements Serializable" part of the
> class declaration.
>
> - Rod <http://radio.weblogs.com/0122027/>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>
>


Mime
View raw message