Larry,

You could be right. I didn't even think about the iteration occuring in the
GUI Thread. Does this mean that the Runnable argument passed to the
LayerManager.fireCategoryChanged() method is in fact the GUI Thread? It
looked like OpenJUMP/JUMP was creating a brand new thread using an inner
class. (I must admit that I find inner classes almost as confusing as
threads.)

I'm not disagreeing with your analysis, I'm just trying to understand. :]

Here is the code for the LayerManager.fireCategoryChanged() method that I
thought created a new thread object to iterate over the layerListeners
collection:


     fireLayerEvent(new Runnable()

        {

        public void run()

        {

           layerListener.categoryChanged(new CategoryEvent(

           category, type, categoryIndex));

        }



Thanks for your help Larry.

The Sunburned Surveyor

On 1/18/07, Larry Becker <[EMAIL PROTECTED]> wrote:

Sunburned,

  I respectfully disagree with your analysis.  I believe all of the
iteration over LayerListeners occurs within the GUI Thread. My guess is that
although addCategory took the bullet, it didn't fire the gun.  Having said
that, and looking at the trace, and your fix, I don't see any harm in trying
it.  I'm a belt and suspenders kind of guy 8-) and I don't have a better
answer.

  This is a pretty old bug (May) and a lot of stuff has changed since then
so it may not be possible to reproduce it any more.  I tried loading a task
with dozens of categories with no luck, even with OJ 1.0.1.

regards,
Larry

 On 1/18/07, Sunburned Surveyor <[EMAIL PROTECTED]> wrote:

> I have attached the Java file for the modified LayerManager class that
> fixes Pedro's bug with the ConcurrentModificationException. All of the
> changes were made to the LayerManager.fireCategoryChanged() method. I
> implemented the solution recommended by David, which is to clone the
> layerListener collection before firing the event to the listeners. The
> LayerManager class was taken from the OpenJUMP CVS.
>
> This has not been tested in an OpenJUMP build yet. I will test it with
> the other bug fixes I need to make for the 01.00.02 release.
>
> The Sunburned Surveyor
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> opinions on IT & business topics through brief surveys - and earn cash
>
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>
>
>

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to