svoid findDeadlockReasonsInStackTracesFile(File f) { LS traces = splitAtEmptyLines(loadTextFile(f)); S sub = "java.awt.EventQueue"; LS traces2 = containing(traces, sub); print(n2(traces2, "thread") + " with AWT activity.\n"); // put stack trace with most activity within AWT thread first // (most likely culprit) sortInPlaceByCalculatedFieldDesc(traces2, t -> indexOfLineContaining(t, sub)); print(joinWithEmptyLines(traces2)); } svoid findDeadlockReasonsInStackTracesFile() { File f = latestFileIn(stefansOS_watchDogStackTracesDir()); if (f == null) ret with print("No watch dog straces found."); print(f); findDeadlockReasonsInStackTracesFile(f); }