mirror of
https://github.com/M66B/FairEmail.git
synced 2025-03-01 01:06:11 +00:00
Get stack trace string
This commit is contained in:
parent
146b8c12e7
commit
d6b0ded332
1 changed files with 32 additions and 1 deletions
|
@ -67,7 +67,38 @@ public class ThrowableWrapper extends Throwable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSafeStackTraceString() {
|
public String getSafeStackTraceString() {
|
||||||
return jni_get_safe_stack_trace_string(ex);
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
StackTraceElement[] stack = ex.getStackTrace();
|
||||||
|
for (StackTraceElement traceElement : stack)
|
||||||
|
sb.append("\tat ").append(traceElement).append('\n');
|
||||||
|
|
||||||
|
Throwable cause = ex.getCause();
|
||||||
|
StackTraceElement[] enclosing = stack;
|
||||||
|
while (cause != null) {
|
||||||
|
sb.append("Caused by: ").append('\n');
|
||||||
|
|
||||||
|
stack = cause.getStackTrace();
|
||||||
|
|
||||||
|
int m = stack.length - 1;
|
||||||
|
int n = enclosing.length - 1;
|
||||||
|
while (m >= 0 && n >= 0 && stack[m].equals(enclosing[n])) {
|
||||||
|
m--;
|
||||||
|
n--;
|
||||||
|
}
|
||||||
|
|
||||||
|
int common = stack.length - 1 - m;
|
||||||
|
|
||||||
|
for (int i = 0; i <= m; i++)
|
||||||
|
sb.append("\tat ").append(stack[i]).append('\n');
|
||||||
|
if (common != 0)
|
||||||
|
sb.append("\t... ").append(common).append(" more").append('\n');
|
||||||
|
|
||||||
|
enclosing = stack;
|
||||||
|
cause = cause.getCause();
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString(); //jni_get_safe_stack_trace_string(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toSafeString() {
|
public String toSafeString() {
|
||||||
|
|
Loading…
Reference in a new issue