Description
Having recently spent some time trying to use ThreadDumpHandler to diagnose a "lock leak" i realized there are quite a few bits of info available from the ThreadMXBean/ThreadInfo datastcutures that are not included in the response, and i think we should add them:
- switch from findMonitorDeadlockedThreads() to findDeadlockedThreads() to also detect deadlocks from ownable syncrhonizers (ie: ReintrantLocks)
- for each thread:
- in addition to outputing the current getLockName() when a thread is blocked/waiting, return info about the lock owner when available.
- there's already dead code checking this and then throwing away the info
- return the list of all locks (both monitors and ownable synchronizers) held by each thread
- in addition to outputing the current getLockName() when a thread is blocked/waiting, return info about the lock owner when available.