Graphical Thread Dumps (graph)
Each box (node) represents a Thread in the JVM.
When a Thread is waiting on a monitor locked by another Thread, an arrow points from the waiting Thread to the one that currently owns the monitor (the one holding the lock).
Blocked Threads are in red, and runnable ones in green.
I hope you spotted the “guilty” thread by now :-)
(click for a close-up)