From 8955800d17141a30741863c793bec1c0f93a444c Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Wed, 12 Jul 2023 17:01:36 +0200 Subject: [PATCH 1/2] fix: pull js stack trace from wrapped NativeScriptExceptions --- test-app/runtime/src/main/java/com/tns/Runtime.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test-app/runtime/src/main/java/com/tns/Runtime.java b/test-app/runtime/src/main/java/com/tns/Runtime.java index 686652b36..93ce22dce 100644 --- a/test-app/runtime/src/main/java/com/tns/Runtime.java +++ b/test-app/runtime/src/main/java/com/tns/Runtime.java @@ -285,6 +285,8 @@ private static String getStackTraceOnly(String content) { public static String getJSStackTrace(Throwable ex) { if (ex instanceof NativeScriptException) { return ((NativeScriptException) ex).getIncomingStackTrace(); + } else if(ex.getCause() instanceof NativeScriptException) { + return ((NativeScriptException) ex.getCause()).getIncomingStackTrace(); } else { return null; } From 3b1c66cc1936c1e02401b37e4ee8264b3887cb36 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Wed, 12 Jul 2023 17:15:16 +0200 Subject: [PATCH 2/2] feat: keep unwrapping exceptions if necessary --- test-app/runtime/src/main/java/com/tns/Runtime.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/test-app/runtime/src/main/java/com/tns/Runtime.java b/test-app/runtime/src/main/java/com/tns/Runtime.java index 93ce22dce..ad8caed91 100644 --- a/test-app/runtime/src/main/java/com/tns/Runtime.java +++ b/test-app/runtime/src/main/java/com/tns/Runtime.java @@ -283,13 +283,14 @@ private static String getStackTraceOnly(String content) { } public static String getJSStackTrace(Throwable ex) { - if (ex instanceof NativeScriptException) { - return ((NativeScriptException) ex).getIncomingStackTrace(); - } else if(ex.getCause() instanceof NativeScriptException) { - return ((NativeScriptException) ex.getCause()).getIncomingStackTrace(); - } else { - return null; + Throwable cause = ex; + while(cause != null) { + if(cause instanceof NativeScriptException) { + return ((NativeScriptException) cause).getIncomingStackTrace(); + } + cause = cause.getCause(); } + return null; } public static String getStackTraceErrorMessage(Throwable ex) {