Community
Participate
Working Groups
I20040422 JavaCore.startUp() is processing the saved state delta in the same thread. This could cause deadlocks. See bug 59852 for details.
After thinking on this some more, I am also concerned that you may miss resource deltas or receive deltas out of order, depending on when you install your resource change listener. If you install your listener on startup, and then process the save participant delta in a background thread, further changes could occur to the workspace in between. This would result in you receive deltas for new changes before you get a chance to process the save participant delta. I think you need to install your listener and process deltas atomically (from the indexer thread if possible), using an IWorkspaceRunnable. This would ensure you process deltas in correct order.
Thanks John. I'll do that.
Changed JavaCore.startUp() to post a job in the indexer and add a save participant and process the delta atomically.
Verified for 3.0 M9 with build I200405180816.