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 210259 - deadlock (use of AWTTreeLock from non EDT)
Summary: deadlock (use of AWTTreeLock from non EDT)
Status: RESOLVED FIXED
Alias: None
Product: editor
Classification: Unclassified
Component: Actions/Menu/Toolbar (show other bugs)
Version: 7.2
Hardware: All All
: P1 normal (vote)
Assignee: Miloslav Metelka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-28 10:58 UTC by Vladimir Voskresensky
Modified: 2012-04-03 11:15 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Voskresensky 2012-03-28 10:58:45 UTC
re open IDE with opened files.

Found one Java-level deadlock:
=============================
"Folder Instance Processor":
  waiting to lock monitor 0x0aa7ea14 (object 0xca86bb38, a java.awt.Component$AWTTreeLock),
  which is held by "AWT-EventQueue-1"
"AWT-EventQueue-1":
  waiting to lock monitor 0x09715b8c (object 0xcb311ca8, a org.netbeans.modules.editor.mimelookup.MimePathLookup),
  which is held by "Folder Instance Processor"

Java stack information for the threads listed above:
===================================================
"Folder Instance Processor":
        at java.awt.Component.setFont(Component.java:1799)
        - waiting to lock <0xca86bb38> (a java.awt.Component$AWTTreeLock)
        at java.awt.Container.setFont(Container.java:1554)
        at javax.swing.JComponent.setFont(JComponent.java:2723)
        at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:191)
        at javax.swing.plaf.basic.BasicMenuItemUI.installDefaults(BasicMenuItemUI.java:122)
        at javax.swing.plaf.basic.BasicMenuItemUI.installUI(BasicMenuItemUI.java:86)
        at javax.swing.JComponent.setUI(JComponent.java:662)
        at javax.swing.AbstractButton.setUI(AbstractButton.java:1782)
        at javax.swing.JMenuItem.setUI(JMenuItem.java:223)
        at javax.swing.JMenuItem.updateUI(JMenuItem.java:232)
        at javax.swing.JMenuItem.init(JMenuItem.java:194)
        at javax.swing.JMenuItem.<init>(JMenuItem.java:133)
        at javax.swing.JMenuItem.<init>(JMenuItem.java:92)
        at org.netbeans.modules.editor.MainMenuAction$2.<init>(MainMenuAction.java:268)
        at org.netbeans.modules.editor.MainMenuAction.getMenuPresenter(MainMenuAction.java:268)
        at org.netbeans.modules.editor.MainMenuAction.setMenu(MainMenuAction.java:225)
        at org.netbeans.modules.editor.MainMenuAction.resultChanged(MainMenuAction.java:116)
        at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:457)
        at $Proxy2.resultChanged(Unknown Source)
        at org.openide.util.lookup.ProxyLookup$1Notify.run(ProxyLookup.java:181)
        at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:190)
        at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:126)
        at org.netbeans.modules.editor.mimelookup.MimePathLookup.rebuild(MimePathLookup.java:184)
        at org.netbeans.modules.editor.mimelookup.MimePathLookup.beforeLookup(MimePathLookup.java:103)
        - locked <0xcb311ca8> (a org.netbeans.modules.editor.mimelookup.MimePathLookup)
        at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:638)
        at org.openide.util.lookup.ProxyLookup$R.computeResult(ProxyLookup.java:535)
        at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:503)
        at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:499)
        at org.netbeans.modules.editor.MainMenuAction.setMenu(MainMenuAction.java:212)
        at org.netbeans.modules.editor.MainMenuAction$PasteFormattedAction.<init>(MainMenuAction.java:804)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.openide.loaders.InstanceSupport.instanceCreate(InstanceSupport.java:222)
        at org.openide.loaders.InstanceDataObject$Ser.instanceCreate(InstanceDataObject.java:1383)
        at org.openide.loaders.InstanceDataObject.instanceCreate(InstanceDataObject.java:821)
        at org.openide.loaders.FolderInstance.instanceForCookie(FolderInstance.java:580)
        at org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie(MenuBar.java:765)
        at org.openide.loaders.FolderInstance$HoldInstance.instanceCreate(FolderInstance.java:1150)
        at org.openide.loaders.FolderInstance$1R.instances(FolderInstance.java:700)
        at org.openide.loaders.FolderInstance$1R.run(FolderInstance.java:721)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1452)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2032)
"AWT-EventQueue-1":
        at org.netbeans.modules.editor.mimelookup.MimePathLookup.beforeLookup(MimePathLookup.java:101)
        - waiting to lock <0xcb311ca8> (a org.netbeans.modules.editor.mimelookup.MimePathLookup)
        at org.openide.util.lookup.ProxyLookup.lookup(ProxyLookup.java:208)
        at org.netbeans.core.multiview.MultiViewPeer.<clinit>(MultiViewPeer.java:110)
        at org.netbeans.core.multiview.MultiViewCloneableTopComponent.<init>(MultiViewCloneableTopComponent.java:84)
        at org.netbeans.core.api.multiview.MultiViews.createCloneableMultiView(MultiViews.java:118)
        at org.netbeans.modules.cnd.source.CppEditorSupport.createPane(CppEditorSupport.java:356)
        at org.openide.text.CloneableEditorSupport.createCloneableTopComponent(CloneableEditorSupport.java:1373)
        at org.openide.windows.CloneableOpenSupport.openCloneableTopComponent(CloneableOpenSupport.java:200)
        - locked <0xca86bb38> (a java.awt.Component$AWTTreeLock)
        at org.openide.windows.CloneableOpenSupport$1.run(CloneableOpenSupport.java:101)
        at org.openide.util.Mutex.doEvent(Mutex.java:1341)
        at org.openide.util.Mutex.writeAccess(Mutex.java:455)
        at org.openide.windows.CloneableOpenSupport.open(CloneableOpenSupport.java:98)
        at org.openide.text.CloneableEditorSupport.open(CloneableEditorSupport.java:503)
        at org.openide.awt.ActionDefaultPerfomer.actionPerformed(ActionDefaultPerfomer.java:70)
        at org.openide.awt.ContextAction$Performer.actionPerformed(ContextAction.java:226)
        at org.openide.awt.ContextManager.actionPerformed(ContextManager.java:250)
        at org.openide.awt.ContextAction.actionPerformed(ContextAction.java:109)
        at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:93)
        at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
        at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
        at org.openide.awt.GeneralAction$BaseDelAction.actionPerformed(GeneralAction.java:234)
        at org.openide.explorer.view.TreeView$PopupSupport.mouseClicked(TreeView.java:1624)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6291)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6053)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4651)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4481)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4481)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:602)
        at java.awt.EventQueue$1.run(EventQueue.java:600)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:616)
        at java.awt.EventQueue$2.run(EventQueue.java:614)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Comment 1 Vladimir Voskresensky 2012-03-28 10:59:19 UTC
  Product Version         = NetBeans IDE Dev (Build 20120328-61693a5f348a) (#61693a5f348a)
  Operating System        = SunOS version 5.10 running on x86
  Java; VM; Vendor        = 1.6.0_29; Java HotSpot(TM) Server VM 20.4-b02; Sun Microsystems Inc.
  Runtime                 = Java(TM) SE Runtime Environment 1.6.0_29-b11
  Java Home               = /usr/jdk/instances/jdk1.6.0_29/jre
  System Locale; Encoding = ru_RU (nb); UTF-8
Comment 2 Vladimir Voskresensky 2012-04-02 14:19:52 UTC
it happens again and again.

Java stack information for the threads listed above:
===================================================
"Folder Instance Processor":
        at java.awt.Component.setFont(Component.java:1799)
        - waiting to lock <0xca816150> (a java.awt.Component$AWTTreeLock)
        at java.awt.Container.setFont(Container.java:1554)
        at javax.swing.JComponent.setFont(JComponent.java:2723)
        at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:191)
        at javax.swing.plaf.basic.BasicMenuItemUI.installDefaults(BasicMenuItemUI.java:122)
        at javax.swing.plaf.basic.BasicMenuItemUI.installUI(BasicMenuItemUI.java:86)
        at javax.swing.JComponent.setUI(JComponent.java:662)
        at javax.swing.AbstractButton.setUI(AbstractButton.java:1782)
        at javax.swing.JMenuItem.setUI(JMenuItem.java:223)
        at javax.swing.JMenuItem.updateUI(JMenuItem.java:232)
        at javax.swing.JMenuItem.init(JMenuItem.java:194)
        at javax.swing.JMenuItem.<init>(JMenuItem.java:133)
        at javax.swing.JMenuItem.<init>(JMenuItem.java:92)
        at org.netbeans.modules.editor.MainMenuAction$2.<init>(MainMenuAction.java:268)
        at org.netbeans.modules.editor.MainMenuAction.getMenuPresenter(MainMenuAction.java:268)
        at org.netbeans.modules.editor.MainMenuAction.setMenu(MainMenuAction.java:225)
        at org.netbeans.modules.editor.MainMenuAction.resultChanged(MainMenuAction.java:116)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:457)
        at $Proxy2.resultChanged(Unknown Source)
        at org.openide.util.lookup.ProxyLookup$1Notify.run(ProxyLookup.java:181)
        at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:190)
        at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:126)
        at org.netbeans.modules.editor.mimelookup.MimePathLookup.rebuild(MimePathLookup.java:184)
        at org.netbeans.modules.editor.mimelookup.MimePathLookup.beforeLookup(MimePathLookup.java:103)
        - locked <0xcb21b780> (a org.netbeans.modules.editor.mimelookup.MimePathLookup)
        at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:638)
        at org.openide.util.lookup.ProxyLookup$R.computeResult(ProxyLookup.java:535)
        at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:503)
        at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:499)
        at org.netbeans.modules.editor.MainMenuAction.setMenu(MainMenuAction.java:212)
        at org.netbeans.modules.editor.MainMenuAction$PasteFormattedAction.<init>(MainMenuAction.java:804)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.openide.loaders.InstanceSupport.instanceCreate(InstanceSupport.java:222)
        at org.openide.loaders.InstanceDataObject$Ser.instanceCreate(InstanceDataObject.java:1383)
        at org.openide.loaders.InstanceDataObject.instanceCreate(InstanceDataObject.java:821)
        at org.openide.loaders.FolderInstance.instanceForCookie(FolderInstance.java:580)
        at org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie(MenuBar.java:765)
        at org.openide.loaders.FolderInstance$HoldInstance.instanceCreate(FolderInstance.java:1150)
        at org.openide.loaders.FolderInstance$1R.instances(FolderInstance.java:700)
        at org.openide.loaders.FolderInstance$1R.run(FolderInstance.java:721)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1452)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2032)
"AWT-EventQueue-1":
        at org.netbeans.modules.editor.mimelookup.MimePathLookup.beforeLookup(MimePathLookup.java:101)
        - waiting to lock <0xcb21b780> (a org.netbeans.modules.editor.mimelookup.MimePathLookup)
        at org.openide.util.lookup.ProxyLookup.lookup(ProxyLookup.java:208)
        at org.netbeans.core.multiview.MultiViewPeer.<clinit>(MultiViewPeer.java:110)
        at org.netbeans.core.multiview.MultiViewCloneableTopComponent.<init>(MultiViewCloneableTopComponent.java:84)
        at org.netbeans.core.api.multiview.MultiViews.createCloneableMultiView(MultiViews.java:118)
        at org.netbeans.modules.cnd.source.CppEditorSupport.createPane(CppEditorSupport.java:356)
        at org.openide.text.CloneableEditorSupport.createCloneableTopComponent(CloneableEditorSupport.java:1373)
        at org.openide.windows.CloneableOpenSupport.openCloneableTopComponent(CloneableOpenSupport.java:200)
        - locked <0xca816150> (a java.awt.Component$AWTTreeLock)
        at org.openide.windows.CloneableOpenSupport$1.run(CloneableOpenSupport.java:101)
        at org.openide.util.Mutex.doEvent(Mutex.java:1341)
        at org.openide.util.Mutex.writeAccess(Mutex.java:455)
        at org.openide.windows.CloneableOpenSupport.open(CloneableOpenSupport.java:98)
        at org.openide.text.CloneableEditorSupport.open(CloneableEditorSupport.java:503)
        at org.openide.awt.ActionDefaultPerfomer.actionPerformed(ActionDefaultPerfomer.java:70)
        at org.openide.awt.ContextAction$Performer.actionPerformed(ContextAction.java:226)
        at org.openide.awt.ContextManager.actionPerformed(ContextManager.java:250)
        at org.openide.awt.ContextAction.actionPerformed(ContextAction.java:109)
        at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:93)
        at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
        at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
        at org.openide.awt.GeneralAction$BaseDelAction.actionPerformed(GeneralAction.java:234)
        at org.openide.explorer.view.TreeView$PopupSupport.mouseClicked(TreeView.java:1624)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6291)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6053)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4651)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4481)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4481)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:602)
        at java.awt.EventQueue$1.run(EventQueue.java:600)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:616)
        at java.awt.EventQueue$2.run(EventQueue.java:614)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Comment 3 Miloslav Metelka 2012-04-02 16:20:35 UTC
http://hg.netbeans.org/jet-main/rev/7662dd6ca650
Comment 4 Quality Engineering 2012-04-03 11:15:18 UTC
Integrated into 'main-golden', will be available in build *201204030400* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/7662dd6ca650
User: Miloslav Metelka <mmetelka@netbeans.org>
Log: #210259 - deadlock (use of AWTTreeLock from non EDT).