Go to the documentation of this file.
19package org.sleuthkit.autopsy.coreutils;
21import java.io.BufferedReader;
22import java.io.StringReader;
23import java.lang.management.ManagementFactory;
24import java.lang.management.ThreadInfo;
25import java.lang.management.ThreadMXBean;
26import java.util.Arrays;
27import java.util.concurrent.ExecutorService;
28import java.util.concurrent.TimeUnit;
29import java.util.stream.Collectors;
47 boolean tasksCompleted =
false;
48 while (!tasksCompleted) {
51 }
catch (InterruptedException ignored) {
68 StringBuilder threadDump =
new StringBuilder(System.lineSeparator());
69 ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
70 ThreadInfo[] threadInfos = threadMXBean.getThreadInfo(threadMXBean.getAllThreadIds(), 100);
71 for (ThreadInfo threadInfo : threadInfos) {
74 threadDump.append(
new BufferedReader(
new StringReader(threadInfo.toString()))
76 .collect(Collectors.joining(System.lineSeparator())));
77 threadDump.append(System.lineSeparator());
80 long[] deadlockThreadIds = threadMXBean.findDeadlockedThreads();
81 if (deadlockThreadIds !=
null) {
82 threadDump.append(
"-------------------List of Deadlocked Thread IDs ---------------------");
83 threadDump.append(System.lineSeparator());
84 String idsList = (Arrays
85 .stream(deadlockThreadIds)
87 .collect(Collectors.toList()))
88 .stream().map(n -> String.valueOf(n))
89 .collect(Collectors.joining(
"-",
"{",
"}"));
90 threadDump.append(idsList);
92 return threadDump.toString();
static void shutDownTaskExecutor(ExecutorService executor)
static final long DEFAULT_TIMEOUT
static String generateThreadDump()
static final TimeUnit DEFAULT_TIMEOUT_UNITS
Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a
Creative Commons Attribution-Share Alike 3.0 United States License.