private static List<StackTraceElement> stackTraceInCurrentThread(String methodToStartFrom) { List<StackTraceElement> filtered = stackTraceInCurrentThread(); List<StackTraceElement> toRemove = new ArrayList<>(); for (StackTraceElement e : filtered) { if (methodToStartFrom.equals(e.getMethodName())) { break; } toRemove.add(e); } filtered.removeAll(toRemove); return filtered; }
/** * Appends the stack trace of the current thread to the one in the given <code>{@link Throwable}</code>. * * @param t the given {@code Throwable}. * @param methodToStartFrom the name of the method used as the starting point of the current thread's stack trace. */ public static void appendStackTraceInCurrentThreadToThrowable(Throwable t, String methodToStartFrom) { List<StackTraceElement> stackTrace = newArrayList(t.getStackTrace()); stackTrace.addAll(stackTraceInCurrentThread(methodToStartFrom)); t.setStackTrace(stackTrace.toArray(new StackTraceElement[stackTrace.size()])); }
private static List<StackTraceElement> stackTraceInCurrentThread(String methodToStartFrom) { List<StackTraceElement> filtered = stackTraceInCurrentThread(); List<StackTraceElement> toRemove = new ArrayList<>(); for (StackTraceElement e : filtered) { if (methodToStartFrom.equals(e.getMethodName())) { break; } toRemove.add(e); } filtered.removeAll(toRemove); return filtered; }
/** * Appends the stack trace of the current thread to the one in the given <code>{@link Throwable}</code>. * * @param t the given {@code Throwable}. * @param methodToStartFrom the name of the method used as the starting point of the current thread's stack trace. */ public static void appendStackTraceInCurrentThreadToThrowable(Throwable t, String methodToStartFrom) { List<StackTraceElement> stackTrace = newArrayList(t.getStackTrace()); stackTrace.addAll(stackTraceInCurrentThread(methodToStartFrom)); t.setStackTrace(stackTrace.toArray(new StackTraceElement[stackTrace.size()])); }
private static List<StackTraceElement> stackTraceInCurrentThread(String methodToStartFrom) { List<StackTraceElement> filtered = stackTraceInCurrentThread(); List<StackTraceElement> toRemove = new ArrayList<StackTraceElement>(); for (StackTraceElement e : filtered) { if (methodToStartFrom.equals(e.getMethodName())) { break; } toRemove.add(e); } filtered.removeAll(toRemove); return filtered; }
/** * Appends the stack trace of the current thread to the one in the given <code>{@link Throwable}</code>. * * @param t the given {@code Throwable}. * @param methodToStartFrom the name of the method used as the starting point of the current thread's stack trace. */ public static void appendStackTraceInCurentThreadToThrowable(Throwable t, String methodToStartFrom) { List<StackTraceElement> stackTrace = newArrayList(t.getStackTrace()); stackTrace.addAll(stackTraceInCurrentThread(methodToStartFrom)); t.setStackTrace(stackTrace.toArray(new StackTraceElement[stackTrace.size()])); }