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.
See thread dump attached to deadlock bug 182695 "Load Open Projects" daemon prio=1 tid=0x00000001438c7800 nid=0x15feff000 waiting for monitor entry [0x000000015fefe000] java.lang.Thread.State: BLOCKED (on object monitor) at java.awt.Container.remove(Container.java:1195) - waiting to lock <0x0000000108896600> (a java.awt.Component$AWTTreeLock) at org.netbeans.modules.project.ui.ProjectTab.restoreTreeView(ProjectTab.java:645) at org.netbeans.modules.project.ui.ProjectTab.propertyChange(ProjectTab.java:624) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276) at org.netbeans.modules.project.ui.OpenProjectsTrampolineImpl.propertyChange(OpenProjectsTrampolineImpl.java:108) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276) at org.netbeans.modules.project.ui.OpenProjectList$LoadOpenProjects.updateGlobalState(OpenProjectList.java:369) at org.netbeans.modules.project.ui.OpenProjectList$LoadOpenProjects.run(OpenProjectList.java:320) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1356) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1894)
Surely not a P1, or there would have been other complaints long ago.
core-main #306ab7682e60
Integrated into 'main-golden', will be available in build *201003250201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/306ab7682e60 User: Jesse Glick <jglick@netbeans.org> Log: #182697: manipulate AWT components on EQ only.
*** Bug 181056 has been marked as a duplicate of this bug. ***
Don't you want this line + final boolean someProjectsOpen = OpenProjects.getDefault().getOpenProjects().length > 0; + Mutex.EVENT.readAccess(new Runnable() { + public @Override void run() { to be here? + if (someProjectsOpen) { + restoreTreeView(); + } else { + showNoProjectsLabel(); + } + } + }); It's at least theoretically possible the value can change before the Runnable executes.
(In reply to comment #5) > the value can change before the Runnable executes. It could, in which case I should get a new event and it should repaint. Just preferred to do the calculation outside EQ; not sure if it matters.