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".

Reply via email to