static volatile L printDeadlocks_lastDeadlock; static L printDeadlocks() { ThreadMXBean bean = ManagementFactory.getThreadMXBean(); long ids[] = bean.findDeadlockedThreads(); if (empty(ids)) ret emptyList(); printAsciiHeading("DEADLOCKED THREADS!"); ThreadInfo threadInfo[] = bean.getThreadInfo(ids); S info = print(deadlockedThreadsToString(asList(threadInfo))); appendToFile(javaxDataDir("deadlocks.txt"), "\n\n" + localDateWithSeconds() + "\n" + info); ret printDeadlocks_lastDeadlock = asList(threadInfo); }