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 7810 - deadlock between AWT thread (DataObject rename) and Java source parsing thread
Summary: deadlock between AWT thread (DataObject rename) and Java source parsing thread
Status: CLOSED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 3.x
Hardware: PC Windows 3.1/NT
: P4 normal (vote)
Assignee: issues@java
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2000-10-04 13:18 UTC by David Simonek
Modified: 2007-09-26 09:14 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 David Simonek 2000-10-04 13:18:18 UTC
Conflicting threads:

"Java Source Parsing" daemon prio=4 tid=0xaa9db70 nid=0x334 runnable [0xd91f000.
.0xd91fdc4]
        at org.openide.loaders.MultiDataObject.secondaryEntries(MultiDataObject.
java:260)
        at org.netbeans.modules.java.V8ParseRequest.findCompiledEntries(V8ParseR
equest.java:283)
        at org.netbeans.modules.java.V8ParseRequest.findCompiledClass(V8ParseReq
uest.java:270)
        at org.netbeans.modules.java.gj.ParserEngine.findClazzFile(ParserEngine.
java:277)
        at org.netbeans.modules.java.gj.ParserEngine.symbolsComputed(ParserEngin
e.java:285)
        at org.netbeans.lib.javac.v8.comp.ParsingEnter._case(ParsingEnter.java:6
8)
        at org.netbeans.lib.javac.v8.tree.Tree$ClassDef.visit(Tree.java:389)
        at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451)
        at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465)
        at org.netbeans.lib.javac.v8.comp.Enter._case(Enter.java:479)
        at org.netbeans.lib.javac.v8.tree.Tree$TopLevel.visit(Tree.java:326)
        at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451)
        at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465)
        at org.netbeans.lib.javac.v8.comp.Enter.main(Enter.java:632)
        at org.netbeans.modules.java.gj.ParserEngine.parseObject(ParserEngine.ja
va:135)
        at org.netbeans.modules.java.gj.JavaParserEngine.process(JavaParserEngin
e.java:73)
        at org.netbeans.modules.java.V8ParseRequest.process(V8ParseRequest.java:
340)
        at org.netbeans.modules.java.SourceElementImpl$DataRef.run(SourceElement
Impl.java:1276)
        at org.openide.util.Task.run(Task.java:124)
        at org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcesso
r.java:562)

"AWT-EventQueue-0" prio=7 tid=0xa9cb400 nid=0x368 waiting on monitor [0xaeef000.
.0xaeefdc4]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at org.openide.util.Task.waitFinishedImpl(Task.java:82)
        at org.openide.util.RequestProcessor$Task.waitFinishedImpl(RequestProces
sor.java:377)
        at org.openide.util.Task.waitFinished(Task.java:71)
        at org.netbeans.modules.java.JavaDataObject.updateSourceStart(JavaDataOb
ject.java:366)
        at org.netbeans.modules.java.JavaDataObject.primaryFileMoved(JavaDataObj
ect.java:726)
        at org.netbeans.modules.java.JavaDataObject$PrimaryListener.propertyChan
ge(JavaDataObject.java:746)
        at org.openide.loaders.DataObject.firePropertyChange(DataObject.java:725
)
        at org.openide.loaders.DataObject.rename(DataObject.java:529)
        at org.openide.loaders.DataNode.setName(DataNode.java:110)
        at org.openide.loaders.DataNode.setName(DataNode.java:127)
        at org.openide.nodes.FilterNode.setName(FilterNode.java:219)
        at org.openide.explorer.view.TreeViewCellEditor$1.editingStopped(TreeVie
wCellEditor.java:66)
        at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.
java:112)
        at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultC
ellEditor.java:242)
        at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:
176)
        at javax.swing.tree.DefaultTreeCellEditor.stopCellEditing(DefaultTreeCel
lEditor.java:234)
        at org.openide.explorer.view.TreeViewCellEditor$4.focusLost(TreeViewCell
Editor.java:121)
        at java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:171)
        at java.awt.Component.processFocusEvent(Component.java:3644)
        at javax.swing.JComponent.processFocusEvent(JComponent.java:2058)
        at java.awt.Component.processEvent(Component.java:3537)
        at java.awt.Container.processEvent(Container.java:1164)
        at java.awt.Component.dispatchEventImpl(Component.java:2595)
        at java.awt.Container.dispatchEventImpl(Container.java:1213)
        at java.awt.Component.dispatchEvent(Component.java:2499)
        at java.awt.Component.removeNotify(Component.java:4110)
        at java.awt.Container.removeNotify(Container.java:1603)
        at javax.swing.JComponent.removeNotify(JComponent.java:4030)
        at javax.swing.text.JTextComponent.removeNotify(JTextComponent.java:1416
)
        at java.awt.Container.removeNotify(Container.java:1598)
        at java.awt.Container.remove(Container.java:427)
        at java.awt.Container.remove(Container.java:477)
        at javax.swing.plaf.basic.BasicTreeUI.completeEditing(BasicTreeUI.java:1
849)
        at javax.swing.plaf.basic.BasicTreeUI$CellEditorHandler.editingStopped(B
asicTreeUI.java:2481)
        at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.
java:112)
        at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultC
ellEditor.java:242)
        at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:
176)
        at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultC
ellEditor.java:251)
        at javax.swing.JTextField.fireActionPerformed(JTextField.java:421)
        at javax.swing.JTextField.postActionEvent(JTextField.java:586)
        at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:6
96)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1702)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2156)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2182)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2119)
        at java.awt.Component.processEvent(Component.java:3555)
        at java.awt.Container.processEvent(Container.java:1164)
        at java.awt.Component.dispatchEventImpl(Component.java:2595)
        at java.awt.Container.dispatchEventImpl(Container.java:1213)
        at java.awt.Component.dispatchEvent(Component.java:2499)
        at java.awt.LightweightDispatcher.processKeyEvent(Container.java:2155)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2135)
        at java.awt.Container.dispatchEventImpl(Container.java:1200)
        at java.awt.Window.dispatchEventImpl(Window.java:912)
        at java.awt.Component.dispatchEvent(Component.java:2499)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
        at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:10
3)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
______________________________

The occurence of this deadlock is quite low, nearly zero, so it has normal
severity, not major.
Comment 1 Svata Dedic 2000-10-04 14:07:59 UTC
It's fixed; but many operations, like DataObject.rename() are synchronized on
the whole DataObject instance.
With such complex operations like parsing and class renaming during rename()
execution it's likely that some other deadlock will occur in the future.
Comment 2 Quality Engineering 2003-07-01 13:19:44 UTC
Resolved for 3.4.x or earlier, no new info since then -> closing.