diff --git a/common/src/main/java/org/embeddedt/modernfix/world/ThreadDumper.java b/common/src/main/java/org/embeddedt/modernfix/world/ThreadDumper.java index bd57cb0e..a412d009 100644 --- a/common/src/main/java/org/embeddedt/modernfix/world/ThreadDumper.java +++ b/common/src/main/java/org/embeddedt/modernfix/world/ThreadDumper.java @@ -5,16 +5,23 @@ import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; public class ThreadDumper { + private static final String STACKTRACE_TAIL = "\t...\n\n"; public static String obtainThreadDump() { ThreadMXBean threadmxbean = ManagementFactory.getThreadMXBean(); ThreadInfo[] athreadinfo = threadmxbean.dumpAllThreads(true, true); StringBuilder sb = new StringBuilder(); sb.append("Thread Dump:\n"); for(ThreadInfo threadinfo : athreadinfo) { - sb.append(threadinfo); + String tInfo = threadinfo.toString(); StackTraceElement[] elements = threadinfo.getStackTrace(); if(elements.length > 8) { - sb.append("extended trace:\n"); + if(tInfo.endsWith(STACKTRACE_TAIL)) + tInfo = tInfo.substring(0, tInfo.length() - STACKTRACE_TAIL.length()); + else + tInfo = tInfo + "extended trace:\n"; + } + sb.append(tInfo); + if(elements.length > 8) { for(int i = 8; i < elements.length; i++) { sb.append("\tat "); sb.append(elements[i]);