Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Loskutov2021-06-14 08:40:39 +0000
committerAndrey Loskutov2021-06-14 09:36:30 +0000
commit237fca83451403f4b4cdb10b6e7814e607e28d99 (patch)
tree95f65eda58be04916da3046ea25a01610a72c413 /bundles/org.eclipse.test.performance
parent0905fa35c4671117d43e752f735053fa27815295 (diff)
downloadeclipse.platform.releng-237fca83451403f4b4cdb10b6e7814e607e28d99.tar.gz
eclipse.platform.releng-237fca83451403f4b4cdb10b6e7814e607e28d99.tar.xz
eclipse.platform.releng-237fca83451403f4b4cdb10b6e7814e607e28d99.zip
Bug 574180 - Improve
org.eclipse.test.TracingSuite.DumpTask.dumpStackTraces() Use similar (better) format from org.eclipse.jdt.core.tests.model.FreezeMonitor.expectCompletionIn(long) Change-Id: Ia397d0a52f36ed370c43a5959ca931e0bad52b10 Signed-off-by: Andrey Loskutov <loskutov@gmx.de> Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.releng/+/181909 Tested-by: Platform Bot <platform-bot@eclipse.org>
Diffstat (limited to 'bundles/org.eclipse.test.performance')
-rw-r--r--bundles/org.eclipse.test.performance/src/org/eclipse/test/TracingSuite.java35
1 files changed, 23 insertions, 12 deletions
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/TracingSuite.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/TracingSuite.java
index 64ee9d37..a1716f3a 100644
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/TracingSuite.java
+++ b/bundles/org.eclipse.test.performance/src/org/eclipse/test/TracingSuite.java
@@ -19,13 +19,14 @@ import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadInfo;
+import java.lang.management.ThreadMXBean;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
-import java.util.Map;
-import java.util.Map.Entry;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
@@ -233,19 +234,29 @@ public class TracingSuite extends Suite {
System.gc();
stream.format("freeMemory (after GC): %11d\n", Runtime.getRuntime().freeMemory());
- Thread main = null;
- Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
- for (Entry<Thread, StackTraceElement[]> entry : stackTraces.entrySet()) {
- String name = entry.getKey().getName();
+ ThreadMXBean threadStuff = ManagementFactory.getThreadMXBean();
+ ThreadInfo[] allThreads = threadStuff.getThreadInfo(threadStuff.getAllThreadIds(), 200);
+ for (ThreadInfo threadInfo : allThreads) {
+ stream.print("\"");
+ stream.print(threadInfo.getThreadName());
+ stream.print("\": ");
+ stream.print(threadInfo.getThreadState());
+ stream.println();
+ final StackTraceElement[] elements = threadInfo.getStackTrace();
+ for (StackTraceElement element : elements) {
+ stream.print(" ");
+ stream.print(element);
+ stream.println();
+ }
+ stream.println();
+ }
+ for (Thread t : Thread.getAllStackTraces().keySet()) {
+ String name = t.getName();
if ("main".equals(name)) {
- main = entry.getKey();
+ return t;
}
- StackTraceElement[] stack = entry.getValue();
- ThreadDump exception = new ThreadDump("for thread \"" + name + "\"");
- exception.setStackTrace(stack);
- exception.printStackTrace(stream);
}
- return main;
+ return null;
}
}

Back to the top