diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 42e4b8f5511094a44589d5107c7743337e332f91..44f27d73e5e83199a1498f13a00b8b6d76a1f3b8 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -26,23 +26,23 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; +import java.lang.management.LockInfo; +import java.lang.management.ManagementFactory; +import java.lang.management.MonitorInfo; +import java.lang.management.ThreadInfo; +import java.lang.management.ThreadMXBean; import java.net.URI; import java.net.URISyntaxException; import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; -import java.util.Collection; -import java.util.Collections; import java.util.logging.LogRecord; import java.util.logging.SimpleFormatter; -import java.lang.management.ManagementFactory; -import java.lang.management.ThreadMXBean; -import java.lang.management.ThreadInfo; -import java.lang.management.MonitorInfo; -import java.lang.management.LockInfo; /** * Utility functions used in views. @@ -483,6 +483,18 @@ public class Functions { return mbean.getThreadInfo(mbean.getAllThreadIds(),mbean.isObjectMonitorUsageSupported(),mbean.isSynchronizerUsageSupported()); } + /** + * Are we running on JRE6 or above? + */ + public static boolean isMustangOrAbove() { + try { + System.console(); + return true; + } catch(LinkageError e) { + return false; + } + } + // ThreadInfo.toString() truncates the stack trace by first 8, so needed my own version public static String dumpThreadInfo(ThreadInfo ti) { StringBuilder sb = new StringBuilder("\"" + ti.getThreadName() + "\"" + diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index 22458c8900e1e8a927f2eafc5f03e1158462d5ef..a1dac4de24719645eb52ed4111ddb38aadb40131 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -1148,6 +1148,13 @@ public final class Hudson extends View implements ItemGroup, Node rsp.sendRedirect2("."); } + /** + * Backward compatibility. Redirect to the thread dump. + */ + public void doClassicThreadDump( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + rsp.sendRedirect2("threadDump"); + } + public synchronized Item doCreateItem( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { if(!Hudson.adminCheck(req,rsp)) return null; diff --git a/core/src/main/resources/hudson/model/Hudson/classicThreadDump.jelly b/core/src/main/resources/hudson/model/Hudson/classicThreadDump.jelly deleted file mode 100644 index 0587989e7d56cce641afcc4dda59a67e44df1f04..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/Hudson/classicThreadDump.jelly +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - -

Thread Dump

- -

${e.key} (${e.key.state})

- -
${f}
-
-
-
-
-
diff --git a/core/src/main/resources/hudson/model/Hudson/threadDump.jelly b/core/src/main/resources/hudson/model/Hudson/threadDump.jelly index d52df4617f8e181a9bbd6aaa27f62a37f7b31f09..03ee6d27a4f0d82d7cd3937d914d629893a48721 100644 --- a/core/src/main/resources/hudson/model/Hudson/threadDump.jelly +++ b/core/src/main/resources/hudson/model/Hudson/threadDump.jelly @@ -1,7 +1,5 @@ @@ -9,10 +7,24 @@

Thread Dump

- -

${t.threadName}

-
${h.dumpThreadInfo(t)}
-
+ + + + +

${t.threadName}

+
${h.dumpThreadInfo(t)}
+
+
+ + + +

${e.key} (${e.key.state})

+ +
${f}
+
+
+
+