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 214016 - Deadlock in ClonableEditorSupport when closing and preparing a document.
Summary: Deadlock in ClonableEditorSupport when closing and preparing a document.
Status: RESOLVED DUPLICATE of bug 207571
Alias: None
Product: platform
Classification: Unclassified
Component: Text (show other bugs)
Version: 7.1.2
Hardware: PC Windows 7
: P1 normal (vote)
Assignee: Miloslav Metelka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-12 04:37 UTC by gwaldon
Modified: 2012-06-13 10:13 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 gwaldon 2012-06-12 04:37:32 UTC
Got this one often since upgrading to 7.1.2. A writing thread waits trying to acquire the lock in ClonableEditorSupport.prepareDocument while the AWT event thread, which locked the ClonableEditorSupport in ClonableEditorSupport.closeDocument, is trying to acquire the read lock.

Let me know if full dump is needed.

Writing thread:
‘Sequence Viewing Processing’
org.openide.text.CloneableEditorSupport.prepareDocument(CloneableEditorSupport.java:603)
org.genbeans.modules.seqviewer.SequenceViewerSupport$1.run(SequenceViewerSupport.java:367)
org.genbeans.modules.seqviewer.ViewerDocument$ViewerRenderer$1.run(ViewerDocument.java:737)
org.genbeans.modules.seqviewer.ViewerDocument$ViewerRenderer.render(ViewerDocument.java:774)
org.genbeans.modules.seqviewer.ViewerDocument$ViewerRenderer.run(ViewerDocument.java:748)
org.netbeans.editor.GuardedDocument.runAtomic(GuardedDocument.java:317)
org.openide.text.NbDocument.runAtomic(NbDocument.java:422)
org.genbeans.modules.seqviewer.ViewerDocument$ViewerRenderer.render(ViewerDocument.java:763)
org.genbeans.modules.seqviewer.ViewerDocument$ViewerRenderer.run(ViewerDocument.java:748)
org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1411)
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1991)

AWT Event thread:
‘AWT-EventQueue-1’
java.lang.Object.wait(Object.java)
java.lang.Object.wait(Object.java:485)
javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1372)
org.genbeans.modules.seqviewer.ViewerDocument.render(ViewerDocument.java:518)
org.openide.text.PositionRef$Manager$DocumentRenderer.render(PositionRef.java:894)
org.openide.text.PositionRef$Manager.processPositions(PositionRef.java:351)
org.openide.text.PositionRef$Manager.documentClosed(PositionRef.java:292)
org.openide.text.CloneableEditorSupport.doCloseDocument(CloneableEditorSupport.java:2234)
org.openide.text.CloneableEditorSupport.closeDocument(CloneableEditorSupport.java:2201)
org.openide.text.CloneableEditorSupport.notifyClosed(CloneableEditorSupport.java:2068)
org.openide.text.CloneableEditorSupport.close(CloneableEditorSupport.java:2177)
org.openide.text.CloneableEditor.componentClosed(CloneableEditor.java:912)
org.genbeans.modules.seqviewer.SequenceViewerComponent.componentClosed(SequenceViewerComponent.java:369)
org.netbeans.core.multiview.MultiViewPeer.peerComponentClosed(MultiViewPeer.java:270)
org.netbeans.core.multiview.MultiViewCloneableTopComponent.componentClosed(MultiViewCloneableTopComponent.java:124)
org.openide.windows.WindowManager.componentCloseNotify(WindowManager.java:322)
org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentClosed(WindowManagerImpl.java:1113)
org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:1011)
org.netbeans.core.windows.ModeImpl.removeTopComponent(ModeImpl.java:478)
org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:286)
org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1278)
org.openide.windows.TopComponent.close(TopComponent.java:575)
org.openide.windows.TopComponent.close(TopComponent.java:562)
org.netbeans.core.windows.WindowManagerImpl.closeNonEditorViews(WindowManagerImpl.java:1763)
org.netbeans.core.windows.actions.ResetWindowsAction.actionPerformed(ResetWindowsAction.java:119)
org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:197)
org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95)
org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
org.openide.awt.AlwaysEnabledAction.actionPerformed(AlwaysEnabledAction.java:200)
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
javax.swing.AbstractButton.doClick(AbstractButton.java:357)
javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
java.awt.Component.processMouseEvent(Component.java:6267)
javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
java.awt.Component.processEvent(Component.java:6032)
java.awt.Container.processEvent(Container.java:2041)
java.awt.Component.dispatchEventImpl(Component.java:4630)
java.awt.Container.dispatchEventImpl(Container.java:2099)
java.awt.Component.dispatchEvent(Component.java:4460)
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
java.awt.Container.dispatchEventImpl(Container.java:2085)
java.awt.Window.dispatchEventImpl(Window.java:2478)
java.awt.Component.dispatchEvent(Component.java:4460)
java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:162)
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)
Comment 1 Miloslav Metelka 2012-06-13 10:13:15 UTC
This should be a dup of issue #207571 fixed in trunk and NB 7.2 Beta.
The CES.close() now acquires readlock first prior CES.getLock().

*** This bug has been marked as a duplicate of bug 207571 ***