Sample Output from Deadlock Detection Utility
^\Full thread dump Java HotSpot(TM) Client VM (1.4.1 mixed mode): "DestroyJavaVM" prio=5 tid=0x2c788 nid=0x1 waiting on condition [0..ffbee16c] "Thread-7" prio=5 tid=0x119570 nid=0x11 waiting for monitor entry [f1681000..f168199c] at Locker.run(Deadlock.java:98) - waiting to lock <f203fe18> (a java.lang.Object) - locked <f6112a88> (a java.lang.String) "Thread-6" prio=5 tid=0x118a18 nid=0x10 waiting for monitor entry [f1781000..f178199c] at Locker.run(Deadlock.java:98) - waiting to lock <f6112a88> (a java.lang.String) - locked <f203fe18> (a java.lang.Object) "Thread-5" prio=5 tid=0x117660 nid=0xf waiting on condition [f1881000..f188199c] at java.lang.Thread.sleep(Native Method) at Deadlock$3.run(Deadlock.java:55) - locked <f203fe10> (a java.lang.Object) at java.lang.Thread.run(Thread.java:536) "Thread-4" prio=5 tid=0x116ab8 nid=0xe waiting for monitor entry [f1981000..f198199c] at Deadlock.jniEnter(Native Method) at Deadlock$2.run(Deadlock.java:41) at java.lang.Thread.run(Thread.java:536) "Thread-3" prio=5 tid=0x115f10 nid=0xd runnable [f1a81000..f1a8199c] at Deadlock.rawEnter(Deadlock.java:76) at Deadlock$1.run(Deadlock.java:24) at java.lang.Thread.run(Thread.java:536) "Thread-2" prio=5 tid=0x1154a8 nid=0xc waiting for monitor entry [f1b81000..f1b8199c] at Locker.run(Deadlock.java:98) - waiting to lock <f6112a60> (a java.lang.String) - locked <f203fe00> (a java.lang.Object) "Thread-1" prio=5 tid=0x115270 nid=0xb waiting for monitor entry [f1c81000..f1c8199c] at Locker.run(Deadlock.java:98) - waiting to lock <f203fe00> (a java.lang.Object) - locked <f203fdf8> (a java.lang.Object) "Signal Dispatcher" daemon prio=10 tid=0xbac48 nid=0x9 waiting on condition [0..0] "Finalizer" daemon prio=8 tid=0xb5590 nid=0x6 in Object.wait() [fa381000..fa38199c] at java.lang.Object.wait(Native Method) - waiting on <f2000490> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <f2000490> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0xb3c40 nid=0x5 in Object.wait() [fdf81000..fdf8199c] at java.lang.Object.wait(Native Method) - waiting on <f2000380> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:426) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113) - locked <f2000380> (a java.lang.ref.Reference$Lock) "VM Thread" prio=5 tid=0xb2808 nid=0x4 runnable "VM Periodic Task Thread" prio=10 tid=0xb9190 nid=0x7 waiting on condition "Suspend Checker Thread" prio=10 tid=0xb9ae8 nid=0x8 runnable Found one Java-level deadlock: ============================= "Thread-7": waiting to lock monitor 0xb48d8 (object 0xf203fe18, a java.lang.Object), which is held by "Thread-6" "Thread-6": waiting to lock monitor 0xb48a0 (object 0xf6112a88, a java.lang.String), which is held by "Thread-7" Java stack information for the threads listed above: =================================================== "Thread-7": at Locker.run(Deadlock.java:98) - waiting to lock <f203fe18> (a java.lang.Object) - locked <f6112a88> (a java.lang.String) "Thread-6": at Locker.run(Deadlock.java:98) - waiting to lock <f6112a88> (a java.lang.String) - locked <f203fe18> (a java.lang.Object) Found one Java-level deadlock: ============================= "Thread-4": waiting to lock monitor 0xb4868 (object 0xf203fdf8, a java.lang.Object) in JNI, which is held by "Thread-1" "Thread-1": waiting to lock monitor 0xb4910 (object 0xf203fe00, a java.lang.Object), which is held by "Thread-2" "Thread-2": waiting to lock monitor 0xb4830 (object 0xf6112a60, a java.lang.String), which is held by "Thread-3" "Thread-3": waiting to lock monitor 0x119520 (JVMDI/JVMPI raw monitor), which is held by "Thread-4" Java stack information for the threads listed above: =================================================== "Thread-4": at Deadlock.jniEnter(Native Method) at Deadlock$2.run(Deadlock.java:41) at java.lang.Thread.run(Thread.java:536) "Thread-1": at Locker.run(Deadlock.java:98) - waiting to lock <f203fe00> (a java.lang.Object) - locked <f203fdf8> (a java.lang.Object) "Thread-2": at Locker.run(Deadlock.java:98) - waiting to lock <f6112a60> (a java.lang.String) - locked <f203fe00> (a java.lang.Object) "Thread-3": at Deadlock.rawEnter(Deadlock.java:76) at Deadlock$1.run(Deadlock.java:24) at java.lang.Thread.run(Thread.java:536) Found 2 deadlocks.