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 185923 - Deadlock maven navigator x pom hints
Summary: Deadlock maven navigator x pom hints
Status: RESOLVED FIXED
Alias: None
Product: projects
Classification: Unclassified
Component: Maven (show other bugs)
Version: 6.x
Hardware: PC Linux
: P3 normal (vote)
Assignee: David Simonek
URL:
Keywords:
: 186001 186653 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-05-11 14:26 UTC by David Simonek
Modified: 2010-05-25 13:22 UTC (History)
2 users (show)

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 2010-05-11 14:26:01 UTC
Modifying pom file while maven navigator is open:

Found one Java-level deadlock:
=============================
"StatusProvider":
  waiting to lock monitor 0x0000000042695c30 (object 0x00007f945c7edc20, a org.netbeans.modules.maven.model.pom.impl.ProjectImpl),
  which is held by "AWT-EventQueue-1"
"AWT-EventQueue-1":
  waiting to lock monitor 0x00000000431470e8 (object 0x00007f945aea5998, a org.netbeans.modules.xml.xdm.XDMModel),
  which is held by "StatusProvider"

Java stack information for the threads listed above:
===================================================
"StatusProvider":
	at org.netbeans.modules.xml.xam.AbstractComponent.getModel(AbstractComponent.java:223)
	- waiting to lock <0x00007f945c7edc20> (a org.netbeans.modules.maven.model.pom.impl.ProjectImpl)
	at org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent.getModel(AbstractDocumentComponent.java:426)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentImpl.getModel(POMComponentImpl.java:75)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentImpl.getModel(POMComponentImpl.java:61)
	at org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent.referencesSameNode(AbstractDocumentComponent.java:430)
	at org.netbeans.modules.xml.xam.dom.AbstractDocumentModel.findComponent(AbstractDocumentModel.java:470)
	at org.netbeans.modules.xml.xam.dom.AbstractDocumentModel.findComponent(AbstractDocumentModel.java:462)
	at org.netbeans.modules.xml.xam.dom.AbstractDocumentModel.prepareSyncUnit(AbstractDocumentModel.java:286)
	at org.netbeans.modules.xml.xdm.xam.XDMListener.processChange(XDMListener.java:140)
	at org.netbeans.modules.xml.xdm.xam.XDMListener.processEvent(XDMListener.java:212)
	at org.netbeans.modules.xml.xdm.xam.XDMListener.propertyChange(XDMListener.java:226)
	at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
	at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
	at org.netbeans.modules.xml.xdm.XDMModel.fireDiffEvents(XDMModel.java:269)
	at org.netbeans.modules.xml.xdm.XDMModel.finishSync(XDMModel.java:221)
	at org.netbeans.modules.xml.xdm.XDMModel.sync(XDMModel.java:158)
	- locked <0x00007f945aea5998> (a org.netbeans.modules.xml.xdm.XDMModel)
	at org.netbeans.modules.xml.xdm.xam.XDMAccess.sync(XDMAccess.java:143)
	- locked <0x00007f945aea5998> (a org.netbeans.modules.xml.xdm.XDMModel)
	at org.netbeans.modules.xml.xam.AbstractModel.sync(AbstractModel.java:259)
	- locked <0x00007f945aea5628> (a org.netbeans.modules.maven.model.pom.impl.POMModelImpl)
	at org.netbeans.modules.maven.hints.pom.StatusProvider$StatusProviderImpl.findHints(StatusProvider.java:136)
	at org.netbeans.modules.maven.hints.pom.StatusProvider$StatusProviderImpl.checkHints(StatusProvider.java:127)
	at org.netbeans.modules.maven.hints.pom.StatusProvider$StatusProviderImpl.access$000(StatusProvider.java:97)
	at org.netbeans.modules.maven.hints.pom.StatusProvider$StatusProviderImpl$1$1.run(StatusProvider.java:111)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1417)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1955)
"AWT-EventQueue-1":
	at org.netbeans.modules.xml.xdm.XDMModel.getDocument(XDMModel.java:824)
	- waiting to lock <0x00007f945aea5998> (a org.netbeans.modules.xml.xdm.XDMModel)
	at org.netbeans.modules.xml.xdm.nodes.NodeImpl.getNamespaceURI(NodeImpl.java:601)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentFactoryImpl.getQName(POMComponentFactoryImpl.java:63)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentFactoryImpl.create(POMComponentFactoryImpl.java:81)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentFactoryImpl.create(POMComponentFactoryImpl.java:51)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentImpl.populateChildren(POMComponentImpl.java:87)
	at org.netbeans.modules.xml.xam.AbstractComponent._getChildren(AbstractComponent.java:180)
	- locked <0x00007f945c7edc20> (a org.netbeans.modules.maven.model.pom.impl.ProjectImpl)
	at org.netbeans.modules.xml.xam.AbstractComponent.getChildren(AbstractComponent.java:196)
	- locked <0x00007f945c7edc20> (a org.netbeans.modules.maven.model.pom.impl.ProjectImpl)
	at org.netbeans.modules.maven.model.pom.impl.POMComponentImpl.getChildElementText(POMComponentImpl.java:157)
	at org.netbeans.modules.maven.model.pom.impl.ProjectImpl.getModelVersion(ProjectImpl.java:455)
	at org.netbeans.modules.maven.navigator.POMModelVisitor.visit(POMModelVisitor.java:158)
	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.netbeans.modules.maven.navigator.POMModelVisitor$PomChildren.rescan(POMModelVisitor.java:1448)
	at org.netbeans.modules.maven.navigator.POMModelVisitor$PomChildren.addNotify(POMModelVisitor.java:1431)
	at org.openide.nodes.Children.callAddNotify(Children.java:550)
	at org.openide.nodes.EntrySupport$Default.getArray(EntrySupport.java:744)
	at org.openide.nodes.EntrySupport$Default.getNodes(EntrySupport.java:166)
	at org.openide.nodes.EntrySupport$Default.getNodes(EntrySupport.java:222)
	at org.openide.nodes.EntrySupport$Default.getNodesCount(EntrySupport.java:226)
	at org.openide.nodes.Children.getNodesCount(Children.java:484)
	at org.openide.explorer.view.VisualizerNode.getChildren(VisualizerNode.java:255)
	at org.openide.explorer.view.VisualizerNode.getChildren(VisualizerNode.java:245)
	at org.openide.explorer.view.VisualizerNode.getChildCount(VisualizerNode.java:322)
	at javax.swing.tree.DefaultTreeModel.getChildCount(DefaultTreeModel.java:168)
	at javax.swing.tree.FixedHeightLayoutCache$FHTreeStateNode.expand(FixedHeightLayoutCache.java:1135)
	at javax.swing.tree.FixedHeightLayoutCache.rebuild(FixedHeightLayoutCache.java:600)
	at javax.swing.tree.FixedHeightLayoutCache.treeStructureChanged(FixedHeightLayoutCache.java:472)
	at javax.swing.plaf.basic.BasicTreeUI$Handler.treeStructureChanged(BasicTreeUI.java:3829)
	at javax.swing.tree.DefaultTreeModel.fireTreeStructureChanged(DefaultTreeModel.java:561)
	at javax.swing.tree.DefaultTreeModel.nodeStructureChanged(DefaultTreeModel.java:347)
	at javax.swing.tree.DefaultTreeModel.setRoot(DefaultTreeModel.java:117)
	at org.openide.explorer.view.NodeTreeModel$1.run(NodeTreeModel.java:113)
	at org.openide.util.Mutex.doEvent(Mutex.java:1335)
	at org.openide.util.Mutex.readAccess(Mutex.java:345)
	at org.openide.explorer.view.NodeTreeModel.setNode(NodeTreeModel.java:99)
	at org.openide.explorer.view.TreeView.synchronizeRootContext(TreeView.java:839)
	at org.openide.explorer.view.TreeView$TreePropertyListener$1.run(TreeView.java:1223)
	at org.openide.util.Mutex.readAccess(Mutex.java:362)
	at org.openide.util.Mutex$1R.run(Mutex.java:1301)
	at org.openide.util.Mutex.doWrapperAccess(Mutex.java:1318)
	at org.openide.util.Mutex.readAccess(Mutex.java:351)
	at org.openide.explorer.view.TreeView$TreePropertyListener.propertyChange(TreeView.java:1219)
	at org.openide.util.WeakListenerImpl$PropertyChange.propertyChange(WeakListenerImpl.java:193)
	at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
	at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
	at org.openide.explorer.ExplorerManager$2.run(ExplorerManager.java:865)
	at org.openide.util.Mutex.doEvent(Mutex.java:1335)
	at org.openide.util.Mutex.readAccess(Mutex.java:345)
	at org.openide.explorer.ExplorerManager.fireInAWT(ExplorerManager.java:862)
	at org.openide.explorer.ExplorerManager$1SetRootContext.run(ExplorerManager.java:487)
	at org.openide.util.Mutex.readAccess(Mutex.java:362)
	at org.openide.util.Mutex$1R.run(Mutex.java:1301)
	at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1831)
	at org.openide.util.Mutex.doWrapperAccess(Mutex.java:1320)
	at org.openide.util.Mutex.readAccess(Mutex.java:351)
	at org.openide.explorer.ExplorerManager.setRootContext(ExplorerManager.java:499)
	- locked <0x00007f945a73d1d0> (a java.lang.Object)
	at org.netbeans.modules.maven.navigator.POMModelPanel$4.run(POMModelPanel.java:328)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:133)
	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)

Found 1 deadlock.
Comment 1 David Simonek 2010-05-12 14:41:13 UTC
*** Bug 186001 has been marked as a duplicate of this bug. ***
Comment 2 David Simonek 2010-05-18 15:31:07 UTC
Changeset: 5258d82e59f6
Author:    Dafe Simonek <dsimonek@netbeans.org>
Date:      2010-05-18 17:31
Message:   #185923: take lock of POMModel to break deadlock
Issue #185923 - Deadlock maven navigator x pom hints
Comment 3 David Simonek 2010-05-25 13:22:55 UTC
*** Bug 186653 has been marked as a duplicate of this bug. ***