Hi Simeon, Bug 4672530 - Deadlock when using WakeupOnTransformChange
is filed for this. Too late to fix in v1.3 beta2 but this will be fixed when v1.3 release. Thanks for your bug report. - Kelvin ----------------- Java 3D Team Sun Microsystems Inc. >Date: Mon, 22 Apr 2002 16:20:33 -0500 >From: "Simeon H.K. Fitch" <[EMAIL PROTECTED]> >Subject: RE: [JAVA3D] Deadlock in MaterControl.runMonitor? >To: Kelvin Chung <[EMAIL PROTECTED]>, [EMAIL PROTECTED] >MIME-version: 1.0 >X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 >Content-transfer-encoding: 7bit >Importance: Normal >X-Priority: 3 (Normal) >X-MSMail-priority: Normal > >> >> Please use Ctrl-Break (under windows) or kill -3 pid (under >> solaris) and send us the full stacktrace. > >The more complete backtrace (I never knew that 1.3 would actually "detect" >deadlocks!!!). > >"Thread-3" prio=5 tid=0x2342c8 nid=0x8cc waiting on monitor [0..0x6fb30] > >"org.swri.common.log.Logger" daemon prio=5 tid=0x8a6b7e8 nid=0x380 waiting >on mo >nitor [0x2975f000..0x2975fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at org.swri.common.util.WorkQueue.getNextItem(WorkQueue.java:84) > at org.swri.common.util.WorkQueue.getNextItem(WorkQueue.java:65) > at org.swri.common.log.Logger.run(Logger.java:294) > >"Screen Updater" prio=5 tid=0x8a81d70 nid=0x990 waiting on monitor >[0x2971f000.. >0x2971fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at sun.awt.ScreenUpdater.nextEntry(Unknown Source) > at sun.awt.ScreenUpdater.run(Unknown Source) > >"TimerQueue" daemon prio=5 tid=0x8a81838 nid=0x768 waiting on monitor >[0x296df00 >0..0x296dfdbc] > at java.lang.Object.wait(Native Method) > at javax.swing.TimerQueue.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > >"J3D-Renderer-1" prio=5 tid=0x8ae6008 nid=0x79c waiting on monitor >[0x2920f000.. >0x2920fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-InputDeviceScheduler-1" prio=5 tid=0x8a72910 nid=0x7e4 waiting on >monitor [ >0x291cf000..0x291cfdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:270) > at javax.media.j3d.J3dThread.run(J3dThread.java:254) > >"J3D-SoundSchedulerUpdateThread-1" prio=5 tid=0x8a74660 nid=0x8b8 waiting on >mon >itor [0x2918f000..0x2918fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-RenderStructureUpdateThread-1" prio=5 tid=0x8a758a8 nid=0x788 waiting >on mo >nitor [0x2914f000..0x2914fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-BehaviorScheduler-1" prio=5 tid=0x8a72050 nid=0x908 waiting on monitor >[0x2 >910f000..0x2910fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-TransformStructureUpdateThread-1" prio=5 tid=0x8a71348 nid=0x6fc >waiting on > monitor [0x290cf000..0x290cfdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-RenderingEnvironmentStructureUpdateThread-1" prio=5 tid=0x8a70780 >nid=0x72c > waiting on monitor [0x2908f000..0x2908fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-SoundStructureUpdateThread-1" prio=5 tid=0x8acd680 nid=0x910 waiting on >mon >itor [0x2904f000..0x2904fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-GeometryStructureUpdateThread-1" prio=5 tid=0x8acd408 nid=0x8e8 waiting >on >monitor [0x2900f000..0x2900fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-BehaviorStructureUpdateThread-1" prio=5 tid=0x8acdd20 nid=0x7ec waiting >on >monitor [0x28fcf000..0x28fcfdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"J3D-MasterControl" prio=5 tid=0x8a82508 nid=0x6c8 waiting for monitor entry >[0x >28f8f000..0x28f8fdbc] > at >javax.media.j3d.TransformStructure.processLastLocalToVworld(Transform >Structure.java:355) > at >javax.media.j3d.TransformStructure.updateObject(TransformStructure.ja >va:333) > at >javax.media.j3d.MasterControl.updateMirrorObjects(MasterControl.java: >2382) > at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:3006) > at javax.media.j3d.MasterControl.doWork(MasterControl.java:2607) > at >javax.media.j3d.MasterControlThread.run(MasterControlThread.java:28) > >"J3D-TimerThread" prio=5 tid=0x8a823d0 nid=0x790 waiting on monitor >[0x28f4f000. >.0x28f4fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.TimerThread.runMonitor(TimerThread.java:127) > at javax.media.j3d.TimerThread.run(TimerThread.java:94) > >"J3D-RenderingAttributesStructureUpdateThread" prio=5 tid=0x8a2e320 >nid=0x7bc wa >iting on monitor [0x28f0f000..0x28f0fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at javax.media.j3d.J3dThread.runMonitor(J3dThread.java:281) > at javax.media.j3d.J3dThread.run(J3dThread.java:257) > >"AWT-Windows" prio=7 tid=0x8a0de98 nid=0x900 runnable >[0x100df000..0x100dfdbc] > at sun.awt.windows.WToolkit.eventLoop(Native Method) > at sun.awt.windows.WToolkit.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > >"SunToolkit.PostEventQueue-0" prio=7 tid=0x8a0dba8 nid=0x818 waiting on >monitor >[0x1009f000..0x1009fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at sun.awt.PostEventQueue.run(Unknown Source) > >"AWT-EventQueue-0" prio=7 tid=0x8a0d588 nid=0x84c waiting for monitor entry >[0x1 >005f000..0x1005fdbc] > at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:2803) > at javax.media.j3d.MasterControl.setWork(MasterControl.java:2567) > at >javax.media.j3d.MasterControl.processMessage(MasterControl.java:1060) > > at >javax.media.j3d.WakeupCondition.setConditionMet(WakeupCondition.java: >100) > at >javax.media.j3d.WakeupCriterion.setTriggered(WakeupCriterion.java:51) > > at >javax.media.j3d.TransformGroupRetained.notifyConditions(TransformGrou >pRetained.java:408) > at >javax.media.j3d.TransformGroupRetained.setTransform(TransformGroupRet >ained.java:148) > at >javax.media.j3d.TransformGroup.setTransform(TransformGroup.java:111) > at >org.swri.darwin.preprocess.threeD.RotationControl$ChangeHandler.state >Changed(RotationControl.java:113) > at javax.swing.JSlider.fireStateChanged(Unknown Source) > at javax.swing.JSlider$ModelListener.stateChanged(Unknown Source) > at javax.swing.DefaultBoundedRangeModel.fireStateChanged(Unknown >Source) > > at javax.swing.DefaultBoundedRangeModel.setRangeProperties(Unknown >Sourc >e) > at javax.swing.DefaultBoundedRangeModel.setValue(Unknown Source) > at javax.swing.JSlider.setValue(Unknown Source) > at >javax.swing.plaf.basic.BasicSliderUI$TrackListener.mouseDragged(Unkno >wn Source) > at java.awt.Component.processMouseMotionEvent(Unknown Source) > at javax.swing.JComponent.processMouseMotionEvent(Unknown Source) > at java.awt.Component.processEvent(Unknown Source) > at java.awt.Container.processEvent(Unknown Source) > at java.awt.Component.dispatchEventImpl(Unknown Source) > at java.awt.Container.dispatchEventImpl(Unknown Source) > at java.awt.Component.dispatchEvent(Unknown Source) > at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) > at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) > at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) > at java.awt.Container.dispatchEventImpl(Unknown Source) > at java.awt.Window.dispatchEventImpl(Unknown Source) > at java.awt.Component.dispatchEvent(Unknown Source) > at java.awt.EventQueue.dispatchEvent(Unknown Source) > at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown >Source) > > at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown >Source) > at java.awt.EventDispatchThread.pumpEvents(Unknown Source) > at java.awt.EventDispatchThread.run(Unknown Source) > >"Signal Dispatcher" daemon prio=10 tid=0x8015b8 nid=0x8b0 waiting on monitor >[0. >.0] > >"Finalizer" daemon prio=9 tid=0x7fd670 nid=0x760 waiting on monitor >[0x8c4f000.. >0x8c4fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.ref.ReferenceQueue.remove(Unknown Source) > at java.lang.ref.ReferenceQueue.remove(Unknown Source) > at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) > >"Reference Handler" daemon prio=10 tid=0x8990390 nid=0x28c waiting on >monitor [0 >x8c0f000..0x8c0fdbc] > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Unknown Source) > at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source) > >"VM Thread" prio=5 tid=0x23f2c8 nid=0x740 runnable > >"VM Periodic Task Thread" prio=10 tid=0x800338 nid=0x6f4 waiting on monitor >"Suspend Checker Thread" prio=10 tid=0x800c58 nid=0x720 runnable > >FOUND A JAVA LEVEL DEADLOCK: >---------------------------- >"J3D-MasterControl": > waiting to lock monitor 0x7fd104 (object 0x2bfaee0, a >javax.media.j3d.Transfor >mGroupRetained), > which is locked by "AWT-EventQueue-0" >"AWT-EventQueue-0": > waiting to lock monitor 0x7fd064 (object 0x2bfa7f0, a >javax.media.j3d.MasterCo >ntrol), > which is locked by "J3D-MasterControl" > >JAVA STACK INFORMATION FOR THREADS LISTED ABOVE: >------------------------------------------------ >Java Stack for "J3D-MasterControl": >========== > at >javax.media.j3d.TransformStructure.processLastLocalToVworld(Transform >Structure.java:355) > at >javax.media.j3d.TransformStructure.updateObject(TransformStructure.ja >va:333) > at >javax.media.j3d.MasterControl.updateMirrorObjects(MasterControl.java: >2382) > at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:3006) > at javax.media.j3d.MasterControl.doWork(MasterControl.java:2607) > at >javax.media.j3d.MasterControlThread.run(MasterControlThread.java:28) >Java Stack for "AWT-EventQueue-0": >========== > at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:2803) > at javax.media.j3d.MasterControl.setWork(MasterControl.java:2567) > at >javax.media.j3d.MasterControl.processMessage(MasterControl.java:1060) > > at >javax.media.j3d.WakeupCondition.setConditionMet(WakeupCondition.java: >100) > at >javax.media.j3d.WakeupCriterion.setTriggered(WakeupCriterion.java:51) > > at >javax.media.j3d.TransformGroupRetained.notifyConditions(TransformGrou >pRetained.java:408) > at >javax.media.j3d.TransformGroupRetained.setTransform(TransformGroupRet >ained.java:148) > at >javax.media.j3d.TransformGroup.setTransform(TransformGroup.java:111) > at >org.swri.darwin.preprocess.threeD.RotationControl$ChangeHandler.state >Changed(RotationControl.java:113) > at javax.swing.JSlider.fireStateChanged(Unknown Source) > at javax.swing.JSlider$ModelListener.stateChanged(Unknown Source) > at javax.swing.DefaultBoundedRangeModel.fireStateChanged(Unknown >Source) > > at javax.swing.DefaultBoundedRangeModel.setRangeProperties(Unknown >Sourc >e) > at javax.swing.DefaultBoundedRangeModel.setValue(Unknown Source) > at javax.swing.JSlider.setValue(Unknown Source) > at >javax.swing.plaf.basic.BasicSliderUI$TrackListener.mouseDragged(Unkno >wn Source) > at java.awt.Component.processMouseMotionEvent(Unknown Source) > at javax.swing.JComponent.processMouseMotionEvent(Unknown Source) > at java.awt.Component.processEvent(Unknown Source) > at java.awt.Container.processEvent(Unknown Source) > at java.awt.Component.dispatchEventImpl(Unknown Source) > at java.awt.Container.dispatchEventImpl(Unknown Source) > at java.awt.Component.dispatchEvent(Unknown Source) > at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) > at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) > at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) > at java.awt.Container.dispatchEventImpl(Unknown Source) > at java.awt.Window.dispatchEventImpl(Unknown Source) > at java.awt.Component.dispatchEvent(Unknown Source) > at java.awt.EventQueue.dispatchEvent(Unknown Source) > at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown >Source) > > at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown >Source) > at java.awt.EventDispatchThread.pumpEvents(Unknown Source) > at java.awt.EventDispatchThread.run(Unknown Source) > >Found 1 deadlock. > =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".