Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
/** {@inheritDoc} */ @Override public boolean stopThreadById(long id) { Thread[] threads = Thread.getAllStackTraces().keySet().stream() .filter(t -> t.getId() == id) .toArray(Thread[]::new); if (threads.length != 1) return false; threads[0].stop(); return true; } }
public static String jstack() { return jstack(Thread.getAllStackTraces()); }
/** * Finds all threads and corresponding stack traces which can potentially cause the * {@link ExecutorService executor} to not terminate in {@link #AWAIT_TIMEOUT_MINUTES} minutes. * * @return thread dump as string. */ private static String allStackTraces() { return Thread.getAllStackTraces() .entrySet() .stream() .map( entry -> Exceptions.stringify( entry.getKey(), entry.getValue() ) ) .collect( joining() ); }
public static Map<Thread,StackTraceElement[]> dumpAllThreads() { Map<Thread,StackTraceElement[]> sorted = new TreeMap<Thread,StackTraceElement[]>(new ThreadSorter()); sorted.putAll(Thread.getAllStackTraces()); return sorted; }
/** * Logs a stack trace for all threads currently running in the JVM, similar to jstack. */ public static void logAllThreads() { StringBuilder sb = new StringBuilder("Dumping all threads:\n"); for (Thread t : Thread.getAllStackTraces().keySet()) { sb.append(formatStackTrace(t)); } LOG.info(sb.toString()); }
/** * 强行打印ThreadDump,使用最轻量的采集方式,不打印锁信息 */ public void threadDump(String reasonMsg) { logger.info("Thread dump by ThreadDumpper" + (reasonMsg != null ? (" for " + reasonMsg) : "")); Map<Thread, StackTraceElement[]> threads = Thread.getAllStackTraces(); // 两条日志间的时间间隔,是VM被thread dump堵塞的时间. logger.info("Finish the threads snapshot"); StringBuilder sb = new StringBuilder(8192 * 20).append('\n'); for (Entry<Thread, StackTraceElement[]> entry : threads.entrySet()) { dumpThreadInfo(entry.getKey(), entry.getValue(), sb); } logger.info(sb.toString()); }
@Override public Map<ThreadInformation, StackTraceElement[]> createThreadInfo() { final Map<Thread, StackTraceElement[]> map = Thread.getAllStackTraces(); final Map<ThreadInformation, StackTraceElement[]> threads = new HashMap<>(map.size()); for (final Map.Entry<Thread, StackTraceElement[]> entry : map.entrySet()) { threads.put(new BasicThreadInformation(entry.getKey()), entry.getValue()); } return threads; } }
private static String getAllThreadStacksAsString() { Map<Thread, StackTraceElement[]> threadStacks = Thread.getAllStackTraces(); StringBuilder sb = new StringBuilder(); for (Map.Entry<Thread, StackTraceElement[]> entry : threadStacks.entrySet()) { Thread t = entry.getKey(); sb.append(System.lineSeparator()); sb.append("Name: ").append(t.getName()).append(" State: ").append(t.getState()); addStackString(entry.getValue(), sb); } return sb.toString(); }
private boolean containsJerseyThread() { Set<Thread> threads = Thread.getAllStackTraces().keySet(); for (Thread t : threads) { if (t.getName().contains(THREAD_NAME)) { return true; } } return false; } }
@After public void after() { try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("RxNewThread")) { --count; } } if (count != 0) { throw new IllegalStateException("NewThread leak!"); } }
@After public void after() { try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("RxNewThread")) { --count; } } if (count != 0) { throw new IllegalStateException("NewThread leak!"); } }
@Before public void before() { stringObserver = TestHelper.mockObserver(); for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("RxNewThread")) { count++; } } }
@Before public void before() { stringSubscriber = TestHelper.mockSubscriber(); for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("RxNewThread")) { count++; } } }
private static Thread getThread(String name) { Set<Thread> threads = Thread.getAllStackTraces().keySet(); for (Thread t : threads) { if (t.getName().equals(name)) { return t; } } return null; } }
public static void logAllStackTraces() { StringBuilder sb = new StringBuilder(); sb.append("Starting logAllStackTraces()\n"); Map<Thread, StackTraceElement[]> threads = Thread.getAllStackTraces(); for (Entry<Thread, StackTraceElement[]> e: threads.entrySet()) { sb.append("Thread " + e.getKey().getName() + "\n"); for (StackTraceElement elem: e.getValue()) { sb.append("\tat " + elem + "\n"); } } sb.append("Ending logAllStackTraces()\n"); LOG.error(sb.toString()); }
for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("Rx")) { rxThreadsBefore.add(t); for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("Rx")) { rxThreadsAfter.add(t);
private static String getAllThreadStacksAsString() { Map<Thread, StackTraceElement[]> threadStacks = Thread.getAllStackTraces(); StringBuilder sb = new StringBuilder(); for (Map.Entry<Thread, StackTraceElement[]> entry : threadStacks.entrySet()) { Thread t = entry.getKey(); sb.append(System.lineSeparator()); sb.append("Name: ").append(t.getName()).append(" State: ").append(t.getState()); MetaStoreTestUtils.addStackString(entry.getValue(), sb); } return sb.toString(); }
for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getName().startsWith("Rx")) { rxThreads.add(t);
public static void handleTimout(Queue<String> failures, ExecutorService es, TimeoutException e) { for (StackTraceElement[] trace : Thread.getAllStackTraces().values()) { for (StackTraceElement element : trace) { logger.info("\tat " + element); } if (trace.length > 0) { logger.info("------"); } } MoreExecutors.shutdownAndAwaitTermination(es, 10, TimeUnit.SECONDS); for (String failure : failures) { logger.debug(failure); } fail("Spun forever", e); }