Java Reference
In-Depth Information
protect the guilty.) All three were commercial products that had been through extensive test-
ing cycles; each had a bug that was harmless until they all interacted and caused a fatal server
failure.
We've shown only the portion of the thread dump relevant to identifying the deadlock. The
JVM has done a lot of work for us in diagnosing the deadlock—which locks are causing the
problem, which threads are involved, which other locks they hold, and whether other threads
are being indirectly inconvenienced. One thread holds the lock on the
MumbleDBConnec-
tion
and is waiting to acquire the lock on the
MumbleDBCallableStatement
; the oth-
er holds the lock on the
MumbleDBCallableStatement
and is waiting for the lock on
the
MumbleDBConnection
.
Listing 10.7. Portion of Thread Dump After Deadlock.