better thread dump statistic evaluation in threaddump servlet when creating multiple dumps for profiling: no distinguishing between thread states

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6803 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 15 years ago
parent aa083fc45c
commit 5d8238680f

@ -85,12 +85,15 @@ public class Threaddump_p {
traces.add(Thread.getAllStackTraces());
if (MemoryControl.available() < 20 * 1024 * 1024) break;
}
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, null);
/*
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, Thread.State.BLOCKED);
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, Thread.State.RUNNABLE);
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, Thread.State.TIMED_WAITING);
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, Thread.State.WAITING);
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, Thread.State.NEW);
appendStackTraceStats(sb.getRootPath(), buffer, traces, plain, Thread.State.TERMINATED);
*/
} else {
// generate a single thread dump
final Map<Thread,StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
@ -128,8 +131,10 @@ public class Threaddump_p {
}
private static void appendStackTraceStats(final File rootPath, final StringBuilder buffer, final ArrayList<Map<Thread,StackTraceElement[]>> traces, final boolean plain, final Thread.State stateIn) {
bufferappend(buffer, plain, "THREADS WITH STATES: " + stateIn.toString());
bufferappend(buffer, plain, "");
if (stateIn != null) {
bufferappend(buffer, plain, "THREADS WITH STATES: " + stateIn.toString());
bufferappend(buffer, plain, "");
}
// collect single dumps
HashMap<String, Integer> dumps = dumpStatistic(rootPath, traces, plain, stateIn);
@ -188,7 +193,7 @@ public class Threaddump_p {
String line;
String tracename = "";
File classFile;
if ((stateIn.equals(thread.getState())) && (stackTraceElements.length > 0)) {
if ((stateIn == null || stateIn.equals(thread.getState())) && stackTraceElements.length > 0) {
StringBuilder sb = new StringBuilder(3000);
if (plain) {
classFile = getClassFile(classPath, stackTraceElements[stackTraceElements.length - 1].getClassName());

Loading…
Cancel
Save