in aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/UserFault.java [75:107]
private static <T extends Throwable> T filterStackTrace(T t, Set<Throwable> visited, Set<Throwable> visitedSuppressed) {
if (visited.contains(t)) {
return t;
}
visited.add(t);
StackTraceElement[] trace = t.getStackTrace();
for (int i = 0; i < trace.length; i++) {
if (trace[i].getClassName().startsWith(packagePrefix)) {
StackTraceElement[] newTrace = new StackTraceElement[i];
System.arraycopy(trace, 0, newTrace, 0, i);
t.setStackTrace(newTrace);
break;
}
}
Throwable cause = t.getCause();
if (cause != null) {
filterStackTrace(cause, visited, visitedSuppressed);
}
Throwable[] suppressedExceptions = t.getSuppressed();
for (Throwable suppressed: suppressedExceptions) {
if (!visitedSuppressed.contains(suppressed)) {
visitedSuppressed.add(suppressed);
filterStackTrace(suppressed, visited, visitedSuppressed);
}
}
return t;
}