<AWT Dev> <Swing Dev> Review request #4: 6852592 (invalidate() must be smarter) - approved

Rémi Forax forax at univ-mlv.fr
Wed Oct 14 07:51:32 PDT 2009


Le 14/10/2009 13:11, Anthony Petrov a écrit :
> While I'm still waiting for some answers to the questions outlined 
> below, I also just recalled another issue.
>
> About a year ago or so we developed a fix to replace the components 
> array with a collection in the Container class. The initial version of 
> the fix included synchronized (getTreeLock()) sections in such methods 
> like countComponent(), getComponent(int), and some other. I recall we 
> indeed faced dead-locks back then, and decided that a developer must 
> hold the lock when calling these methods, so that we could avoid 
> acquiring the lock ourselves.
>
> How does that decision correspond to the current proposal of forcibly 
> getting the lock in the preferredSize(), paramString(), some Swing 
> methods, and others? Wouldn't that be safer to shift the 
> responsibility of holding the lock to the user's code instead (as just 
> assumed currently, in fact)?
>

Anthony,
did you try top use a CopyOnWriteArrayList as Collection ?
It's a thread safe collection which duplicate the array at each mutation.

my two cents.

> -- 
> best regards,
> Anthony

Rémi



More information about the awt-dev mailing list