static L printDeadlocks() { ThreadMXBean bean = ManagementFactory.getThreadMXBean(); long ids[] = bean.findMonitorDeadlockedThreads(); if (empty(ids)) ret emptyList(); printAsciiHeading("DEADLOCKED THREADS!"); ThreadInfo threadInfo[] = bean.getThreadInfo(ids); for (ThreadInfo threadInfo1 : threadInfo) { print(threadInfo1.getThreadId()); //Prints the ID of deadlocked thread print(threadInfo1.getThreadName()); //Prints the name of deadlocked thread print(threadInfo1.getLockName()); //Prints the string representation of an object for which thread has entered into deadlock. print(threadInfo1.getLockOwnerId()); //Prints the ID of thread which currently owns the object lock print(threadInfo1.getLockOwnerName()); //Prints name of the thread which currently owns the object lock. } ret asList(threadInfo); }