Community
Participate
Working Groups
I20040420 Deadlock happens because 1a. main thread locks JavaModelManager 1b. AllTypes cache locks via rule (some resources) 2a. main thread want lock for some resources that got locked in 1b 2b. AllTypes cache wants lock on JavaModelManager
Created attachment 9716 [details] thread dump
Created attachment 9754 [details] Just the two blocking threads
It seems that the deadlock does not occur in the AllTypesCache code but inside jdt.core: the code to compute the resolved classpath seems to lock the JavaModelManager and some resources inconsistently. I've tried to aquire the JavaModelManager lock before starting a Search, but this wasn't too succesful and I don't think that this is the right approch anyway. Your comment?
This is a consequence of the thread safety protection we added to resolve bug 57886.
Deferred container persistence until save operation is performed. Thus the blocking question is only asked outside the JavaModelManager lock.
Fixed
*** Bug 59600 has been marked as a duplicate of this bug. ***
Verified for 3.0 M9 with build I200405190010.