There is a deadlock when running tests for
projects/compilation module, it seems to occure
under both jdk 1.3.1_02 and 1.4.1. It seems it is
caused by synchronization in
The threads in deadlock are the 'FolderRecognizer'
(as usually) and 'ContainersList-Updater'. The
'FolderRcognizer' thread creates BTDataObject
which creates the ProjectMember for itself in its
ctor, but the 'ContainersList-Updater' tries to
access Lookup of another PM which keeps the lock
and indirectly asks some DataFolder for its children.
Several bad things happend at the same time:
1. BTDataObject does something in its ctor, this
should be avouded (especially calls to another
'higher' layer; the projects in this case)
2. ProjectMember$Environment performs wrong
synchronization in beforeLookup method, this is
probably the root cause.
3. The core/naming (DOEnum) uses DataSystems
(DataFolder.getChildren) to get the list of
bidings in the Context. It's unnecessary and it's
done this way just for the files ordering.
Created attachment 9203 [details]
full thread dump
ad #3 - already filed as issue 30632. I added your comment there for
Studying attached thread dump, this deadlock seems to be the same as
the one described in #30950
*** This issue has been marked as a duplicate of 30950 ***
As described in
current work on projects prototype has been stopped.
Marking issue as VERIFIED --->