-
Notifications
You must be signed in to change notification settings - Fork 39
Description
We were evaluating Java3D + JOGL and we found a deadlock that did not occur in the old Java3D 1.5.2
We use some Swing Components to print 2d stuff on the 3d Canvas
this is the deadlock;
Found one Java-level deadlock:
"AWT-EventQueue-1":
waiting for ownable synchronizer 0x000000068ec7a388, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "J3D-Renderer-1"
"J3D-Renderer-1":
waiting to lock monitor 0x00002aaab0003d98 (object 0x000000068ecd3dc8, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-1"
Java stack information for the threads listed above:
"AWT-EventQueue-1":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000068ec7a388> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
at sun.awt.SunToolkit.awtLock(SunToolkit.java:236)
at sun.awt.X11.XDecoratedPeer.getLocationOnScreen(XDecoratedPeer.java:968)
at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1960)
at java.awt.Component.getLocationOnScreen(Component.java:1938)
- locked <0x000000068ecd3dc8> (a java.awt.Component$AWTTreeLock)
at javax.swing.SwingUtilities.convertPointToScreen(SwingUtilities.java:364)
at org.netbeans.core.windows.view.EditorView.getPureBounds(EditorView.java:95)
at org.netbeans.core.windows.view.ViewHierarchy.getPureEditorAreaBounds(ViewHierarchy.java:914)
at org.netbeans.core.windows.view.DefaultView.guessSlideSide(DefaultView.java:120)
at org.netbeans.core.windows.ViewRequestor.guessSlideSide(ViewRequestor.java:113)
at org.netbeans.core.windows.Central.guessSlideSide(Central.java:1815)
at org.netbeans.core.windows.WindowManagerImpl.guessSlideSide(WindowManagerImpl.java:908)
at org.netbeans.core.windows.view.ui.tabcontrol.TabbedAdapter$WinsysInfo.getOrientation(TabbedAdapter.java:534)
at org.netbeans.swing.tabcontrol.plaf.AbstractViewTabDisplayerUI.showHidePinButton(AbstractViewTabDisplayerUI.java:175)
at org.netbeans.swing.tabcontrol.plaf.AbstractViewTabDisplayerUI$Controller.stateChanged(AbstractViewTabDisplayerUI.java:625)
at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:133)
at org.openide.util.ChangeSupport.fireChange(ChangeSupport.java:119)
at org.netbeans.swing.tabcontrol.DefaultTabDataModel.fireContentsChanged(DefaultTabDataModel.java:472)
at org.netbeans.swing.tabcontrol.DefaultTabDataModel.setText(DefaultTabDataModel.java:164)
at org.netbeans.swing.tabcontrol.TabbedContainer.setTitleAt(TabbedContainer.java:704)
at org.netbeans.core.windows.view.ui.TabbedHandler.topComponentNameChanged(TabbedHandler.java:239)
at org.netbeans.core.windows.view.ui.AbstractModeContainer.updateName(AbstractModeContainer.java:191)
at org.netbeans.core.windows.view.ModeView.updateName(ModeView.java:172)
at org.netbeans.core.windows.view.DefaultView.changeGUI(DefaultView.java:362)
at org.netbeans.core.windows.ViewRequestor.dispatchRequest(ViewRequestor.java:272)
at org.netbeans.core.windows.ViewRequestor.processRequest(ViewRequestor.java:248)
at org.netbeans.core.windows.ViewRequestor.postRequest(ViewRequestor.java:186)
at org.netbeans.core.windows.ViewRequestor.scheduleRequest(ViewRequestor.java:126)
at org.netbeans.core.windows.Central.topComponentDisplayNameChanged(Central.java:1562)
at org.netbeans.core.windows.WindowManagerImpl.topComponentDisplayNameChanged(WindowManagerImpl.java:1180)
at org.openide.windows.TopComponent.setName(TopComponent.java:954)
at com.streamsim.toolpanel.ToolPanelController.updateTCTitle(ToolPanelController.java:223)
at com.streamsim.toolpanel.ToolPanelController.updateContext(ToolPanelController.java:179)
at com.streamsim.toolpanel.ToolPanelController.access$600(ToolPanelController.java:43)
at com.streamsim.toolpanel.ToolPanelController$ActNodeSetter.run(ToolPanelController.java:363)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
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.awt.EventQueue.dispatchEvent(EventQueue.java:611)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:148)
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)
"J3D-Renderer-1":
at java.awt.Component.reshape(Component.java:2144)
- waiting to lock <0x000000068ecd3dc8> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.reshape(JComponent.java:4156)
at java.awt.Component.setBounds(Component.java:2133)
at com.streamsim.metricspaceplots.mds.view.View3DCanvas.layoutColorMaps(View3DCanvas.java:297)
at com.streamsim.metricspaceplots.mds.view.View3DCanvas.postRender(View3DCanvas.java:171)
at javax.media.j3d.Renderer.doWork(Renderer.java:1375)
at javax.media.j3d.J3dThread.run(J3dThread.java:270)
Found 1 deadlock.
Thanks for your hard work!