Community
Participate
Working Groups
In an adopter product, we are running into the circumstance where a process that already has a lock on a file, and the component file is out of sync with the filesystem, is calling into ModuleStructuralModel.checkSync(). When Job.getJobManager().beginRule(root, null); is called, this results in the thread waiting for itself (since it cannot get a workspace lock while it already has a file lock), and thus a deadlock occurs.
Created attachment 175608 [details] Go to the LocalManager to do the refresh
Note that this code brings ModuleStructuralModel.checkSync() in sync with the way org.eclipse.jst.j2ee.common.internal.impl.XMLResourceImpl synchronizes files. see bug 303635 for details on the XMLResourceImpl change.
Created attachment 175613 [details] Cleaned up version - only go to the LocalManager I left in the release of the lock I was no longer acquiring.
Committed to R3_2_1_patches