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 200451 - Deadlock Between "AWT-EventQueue-1" and "Debugger Actions" Threads
Summary: Deadlock Between "AWT-EventQueue-1" and "Debugger Actions" Threads
Status: RESOLVED FIXED
Alias: None
Product: debugger
Classification: Unclassified
Component: Java (show other bugs)
Version: 7.0
Hardware: PC Windows XP
: P3 normal (vote)
Assignee: Martin Entlicher
URL:
Keywords: THREAD, UI
Depends on:
Blocks:
 
Reported: 2011-07-27 22:41 UTC by snackr
Modified: 2011-11-16 16:39 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Stack Traces (10.55 KB, text/plain)
2011-07-27 22:44 UTC, snackr
Details
Stack Traces (10.55 KB, text/plain)
2011-07-27 22:47 UTC, snackr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description snackr 2011-07-27 22:41:04 UTC
Product Version = NetBeans IDE Dev (Build nbms-and-javadoc-7242-on-20110523)
Operating System = Windows XP version 5.1 running on x86
Java; VM; Vendor = 1.6.0_26
Runtime = Java HotSpot(TM) Client VM 20.1-b02

(stack traces below)
43
    Name: AWT-EventQueue-1
    State: BLOCKED on org.netbeans.modules.debugger.jpda.projects.ViewModelListener@a681ea owned by: Debugger Actions
    Total blocked: 215,913  Total waited: 206,292
    
    Stack trace: 
     org.netbeans.modules.debugger.jpda.projects.ViewModelListener.destroy(ViewModelListener.java:174)
    org.netbeans.modules.debugger.jpda.projects.ToolTipView.removeNotify(ToolTipView.java:159)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.remove(Container.java:1140)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JLayeredPane.remove(JLayeredPane.java:227)
    java.awt.Container.remove(Container.java:1198)
       - locked java.awt.Component$AWTTreeLock@1fea18
    org.netbeans.editor.PopupManager.removeFromRootPane(PopupManager.java:260)
    org.netbeans.editor.PopupManager.uninstall(PopupManager.java:152)
    org.netbeans.editor.ext.ToolTipSupport.setToolTipVisible(ToolTipSupport.java:556)
    org.netbeans.editor.ext.ToolTipSupport$Listener.ancestorRemoved(ToolTipSupport.java:1142)
    javax.swing.AncestorNotifier.fireAncestorRemoved(AncestorNotifier.java:90)
    javax.swing.AncestorNotifier.propertyChange(AncestorNotifier.java:216)
    java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
    java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
    java.awt.Component.firePropertyChange(Component.java:8154)
    org.openide.text.QuietEditorPane.firePropertyChange(QuietEditorPane.java:209)
    javax.swing.JComponent.removeNotify(JComponent.java:4705)
    javax.swing.text.JTextComponent.removeNotify(JTextComponent.java:1623)
    org.openide.text.QuietEditorPane.removeNotify(QuietEditorPane.java:257)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    org.netbeans.swing.tabcontrol.TabbedContainer.removeNotify(TabbedContainer.java:960)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.removeNotify(Container.java:2609)
       - locked java.awt.Component$AWTTreeLock@1fea18
    javax.swing.JComponent.removeNotify(JComponent.java:4701)
    java.awt.Container.remove(Container.java:1140)
       - locked java.awt.Component$AWTTreeLock@1fea18
    java.awt.Container.remove(Container.java:1198)
       - locked java.awt.Component$AWTTreeLock@1fea18
    org.netbeans.core.windows.view.ui.DesktopImpl.setViewComponent(DesktopImpl.java:166)
    org.netbeans.core.windows.view.ui.DesktopImpl.setSplitRoot(DesktopImpl.java:144)
    org.netbeans.core.windows.view.ViewHierarchy.setSplitRootIntoDesktop(ViewHierarchy.java:649)
    org.netbeans.core.windows.view.ViewHierarchy.updateDesktop(ViewHierarchy.java:690)
    org.netbeans.core.windows.view.DefaultView.changeGUI(DefaultView.java:353)
    org.netbeans.core.windows.ViewRequestor.dispatchRequest(ViewRequestor.java:272)
    org.netbeans.core.windows.ViewRequestor.processRequest(ViewRequestor.java:248)
    org.netbeans.core.windows.ViewRequestor.postRequest(ViewRequestor.java:186)
    org.netbeans.core.windows.ViewRequestor.scheduleRequest(ViewRequestor.java:126)
    org.netbeans.core.windows.Central.addModeClosedTopComponent(Central.java:862)
    org.netbeans.core.windows.ModeImpl.addClosedTopComponent(ModeImpl.java:359)
    org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:274)
    org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1277)
    org.openide.windows.TopComponent.close(TopComponent.java:568)
    org.openide.windows.TopComponent.close(TopComponent.java:555)
    org.netbeans.modules.debugger.ui.DebuggerManagerListener.closeTopComponentsList(DebuggerManagerListener.java:265)
    org.netbeans.modules.debugger.ui.DebuggerManagerListener.access$900(DebuggerManagerListener.java:90)
    org.netbeans.modules.debugger.ui.DebuggerManagerListener$4.run(DebuggerManagerListener.java:396)
    java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
    java.awt.EventQueue.access$000(EventQueue.java:84)
    java.awt.EventQueue$1.run(EventQueue.java:602)
    java.awt.EventQueue$1.run(EventQueue.java:600)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
    org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

1072
    Name: Debugger Actions
    State: BLOCKED on java.awt.Component$AWTTreeLock@1fea18 owned by: AWT-EventQueue-1
    Total blocked: 8  Total waited: 5
    
    Stack trace: 
     java.awt.Container.removeAll(Container.java:1213)
    org.netbeans.modules.debugger.jpda.projects.ViewModelListener.refreshModel(ViewModelListener.java:381)
       - locked java.util.ArrayList@2aa033
       - locked org.netbeans.modules.debugger.jpda.projects.ViewModelListener@a681ea
    org.netbeans.modules.debugger.jpda.projects.ViewModelListener.updateModel(ViewModelListener.java:313)
       - locked org.netbeans.modules.debugger.jpda.projects.ViewModelListener@a681ea
    org.netbeans.modules.debugger.jpda.projects.ViewModelListener.propertyChange(ViewModelListener.java:235)
    org.netbeans.api.debugger.DebuggerManager.firePropertyChange(DebuggerManager.java:762)
    org.netbeans.api.debugger.DebuggerManager.setCurrentSession(DebuggerManager.java:485)
    org.netbeans.api.debugger.DebuggerManager.removeSession(DebuggerManager.java:1625)
    org.netbeans.api.debugger.DebuggerManager.access$500(DebuggerManager.java:150)
    org.netbeans.api.debugger.DebuggerManager$SessionListener.propertyChange(DebuggerManager.java:1687)
    java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
    java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
    org.netbeans.api.debugger.Session.removeEngine(Session.java:449)
    org.netbeans.api.debugger.DebuggerEngine$Destructor.killEngine(DebuggerEngine.java:241)
    org.netbeans.modules.debugger.jpda.JPDADebuggerImpl.finish(JPDADebuggerImpl.java:1335)
    org.netbeans.modules.debugger.jpda.actions.KillActionProvider.doAction(KillActionProvider.java:79)
    org.netbeans.spi.debugger.ActionsProvider$1.run(ActionsProvider.java:128)
    org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
    org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)

*** also deadlocked ***
1087
    Name: org.netbeans.modules.hudson.impl.HudsonInstanceImpl
    State: BLOCKED on java.awt.Component$AWTTreeLock@1fea18 owned by: AWT-EventQueue-1
    Total blocked: 1  Total waited: 0
    
    Stack trace: 
     java.awt.Component.setFont(Component.java:1798)
    java.awt.Container.setFont(Container.java:1554)
    javax.swing.JComponent.setFont(JComponent.java:2723)
    javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:191)
    javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:49)
    javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:39)
    javax.swing.JComponent.setUI(JComponent.java:662)
    javax.swing.JPanel.setUI(JPanel.java:136)
    javax.swing.JPanel.updateUI(JPanel.java:109)
    javax.swing.JPanel.<init>(JPanel.java:69)
    javax.swing.JPanel.<init>(JPanel.java:92)
    javax.swing.JPanel.<init>(JPanel.java:100)
    org.netbeans.modules.hudson.ui.notification.ProblemPanel.<init>(ProblemPanel.java:52)
    org.netbeans.modules.hudson.ui.notification.ProblemNotification.add(ProblemNotification.java:154)
    org.netbeans.modules.hudson.ui.notification.ProblemNotificationController.updateNotifications(ProblemNotificationController.java:101)
       - locked org.netbeans.modules.hudson.ui.notification.ProblemNotificationController@1f51b34
    org.netbeans.modules.hudson.impl.HudsonInstanceImpl$2.contentChanged(HudsonInstanceImpl.java:160)
    org.netbeans.modules.hudson.impl.HudsonInstanceImpl.fireContentChanges(HudsonInstanceImpl.java:419)
    org.netbeans.modules.hudson.impl.HudsonInstanceImpl$4.run(HudsonInstanceImpl.java:379)
    org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
    org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)
Comment 1 snackr 2011-07-27 22:44:08 UTC
Product Version = NetBeans IDE Dev (Build nbms-and-javadoc-7242-on-20110523)
Operating System = Windows XP version 5.1 running on x86
Java; VM; Vendor = 1.6.0_26
Runtime = Java HotSpot(TM) Client VM 20.1-b02

I was debugging an application.
I was at a breakpoint.
I hovered over a String variable, expanded it, clicked the toString() "..." button, selected the text, then switched to an external editor to paste the contents.
When I switched back to netbeans it was unresponsive.

I used jconsole to detect the deadlocked threads.
Comment 2 snackr 2011-07-27 22:44:16 UTC
Created attachment 109651 [details]
Stack Traces
Comment 3 snackr 2011-07-27 22:47:51 UTC
Product Version = NetBeans IDE Dev (Build nbms-and-javadoc-7242-on-20110523)
Operating System = Windows XP version 5.1 running on x86
Java; VM; Vendor = 1.6.0_26
Runtime = Java HotSpot(TM) Client VM 20.1-b02

I was debugging an application.
I was at a breakpoint.
I hovered over a String variable, expanded it, clicked the toString() "..." button, selected the text, then switched to an external editor to paste the contents.
When I switched back to netbeans it was unresponsive.

I used jconsole to detect the deadlocked threads.
Comment 4 snackr 2011-07-27 22:47:57 UTC
Created attachment 109652 [details]
Stack Traces
Comment 5 Martin Entlicher 2011-07-29 15:47:12 UTC
Fixed by changeset:   197879:9f6d4c491bc2
http://hg.netbeans.org/main/rev/9f6d4c491bc2
Comment 6 Quality Engineering 2011-07-30 13:48:40 UTC
Integrated into 'main-golden'
Changeset: http://hg.netbeans.org/main-golden/rev/9f6d4c491bc2
User: mentlicher@netbeans.org
Log: #200451 Prevent from deadlock.