A JSP to print all the stacks
<%@ page import="java.util.*" %><%
Map<Thread,StackTraceElement[]> map = Thread.getAllStackTraces();
Set tt = map.keySet();
Iterator<Thread> ti = tt.iterator();
Thread thrd = null;
final String br = "<" + "br" + ">";//website does not parse it
try{
int cnt = 1;
StackTraceElement[] st = null;
while(ti.hasNext() ){
thrd = ti.next();
out.print(br + "<" + "hr" + ">" + br + cnt + " \"" + thrd.getName());
out.println("\", priority :" + thrd.getPriority() + ", state :" + thrd.getState());
out.print(", id :" + thrd.getId() + ", hex :" + Long.toHexString(thrd.getId()) );
out.print(" alive :" + thrd.isAlive() + ", daemon :" + thrd.isDaemon() );
out.print(" interrupted :" + thrd.isInterrupted() + ", daemon :" + thrd.isDaemon() );
out.print(".\n" + br);
st = thrd.getStackTrace();
for(int sti = 0; sti < st.length; sti++){
out.println(br + " " + st[sti].getClassName() + "." + st[sti].getMethodName());
out.println("(" + st[sti].getFileName());
if(st[sti].getLineNumber() < 1){
out.print("Native method");
}else{
out.print(":" + st[sti].getLineNumber());
}
out.println(")");
}
out.println("");
cnt++;
}
}catch(Exception e){
out.println(br + "err " + e + br);
}
%>