This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 98573 - Deadlock in PackageView callback
Summary: Deadlock in PackageView callback
Status: RESOLVED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Project (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Jesse Glick
URL:
Keywords: RANDOM, THREAD
Depends on: 98732
Blocks: 49026
  Show dependency tree
 
Reported: 2007-03-21 23:15 UTC by _ pcw
Modified: 2007-03-22 21:50 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Thread stack dump (23.79 KB, text/plain)
2007-03-21 23:17 UTC, _ pcw
Details

Note You need to log in before you can comment on or make changes to this bug.
Description _ pcw 2007-03-21 23:15:18 UTC
See attached thread dump.  Was in the editor and/or manipulating project libraries.
Comment 1 _ pcw 2007-03-21 23:17:44 UTC
Created attachment 39785 [details]
Thread stack dump
Comment 2 Jiri Prox 2007-03-22 17:12:30 UTC
Reassigning to apisupport for evaluation
Comment 3 Jesse Glick 2007-03-22 19:16:16 UTC
Involves apisupport but I have seen a similar deadlock under other
circumstances. Problem seems to be that PackageView receives a change event and
then tries to update node list synchronously, which unfortunately involves a
lock. Trivial to replan the node update but that would mess up a lot of unit
tests, so need to find some way to make it synchronous only inside unit tests.

A contributing issue is that apisupport's Evaluator fires unnecessary property
changes after project.xml modifications.
Comment 4 Jesse Glick 2007-03-22 21:50:40 UTC
Fixed (I hope; no way to verify) by recomputing children asynch except when in a
unit test. Not nice but threading is not nice.

Filed a separate issue #98732 for apisupport.

Checking in PackageView.java;
/shared/data/ccvs/repository/java/project/src/org/netbeans/spi/java/project/support/ui/PackageView.java,v
 <--  PackageView.java
new revision: 1.22; previous revision: 1.21
done