From b963908ba872285c6f132f7cd83b270fae70e8ad Mon Sep 17 00:00:00 2001 From: 8bhsolutions <48874658+8bhsolutions@users.noreply.github.com> Date: Mon, 25 Jan 2021 13:31:07 +1100 Subject: [PATCH 1/3] Add optional "columnNumber" property. Append columnNumber to filename if provided --- .../plugin/firebase/crashlytics/LogErrorHandler.java | 9 ++++++++- types/index.d.ts | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java b/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java index 4027097..94bcf3f 100644 --- a/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java +++ b/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java @@ -55,10 +55,15 @@ public JavascriptException(String message, StackTraceLine[] stackTraceLines) { super(message); StackTraceElement[] stackTrace = new StackTraceElement[stackTraceLines.length]; for(int i = 0; i < stackTraceLines.length; i++) { + String filename = stackTraceLines[i].fileName; + if(stackTraceLines[i].columnNumber > 0) { + filename = filename + ":" + stackTraceLines[i].columnNumber; + } + stackTrace[i] = new StackTraceElement( stackTraceLines[i].className, stackTraceLines[i].functionName, - stackTraceLines[i].fileName, + filename, stackTraceLines[i].lineNumber ); } @@ -72,6 +77,7 @@ private static class StackTraceLine { public String functionName; public String fileName; public int lineNumber; + public int columnNumber; private StackTraceLine() { } @@ -83,6 +89,7 @@ public static StackTraceLine fromJSONObject(JSONObject json) throws JSONExceptio sl.functionName = json.optString("functionName", "<>"); sl.fileName = json.getString("fileName"); sl.lineNumber = json.getInt("lineNumber"); + sl.columnNumber = json.optInt("columnNumber", -1); return sl; } diff --git a/types/index.d.ts b/types/index.d.ts index 77aaf6c..89be801 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -22,6 +22,7 @@ declare namespace FirebaseCrashlytics { functionName: string; fileName: string; lineNumber: number; + columnNumber: number; } } From bdae09a8f6fa71c8818bd8c380273c61eee0e9da Mon Sep 17 00:00:00 2001 From: 8bhsolutions <48874658+8bhsolutions@users.noreply.github.com> Date: Mon, 25 Jan 2021 13:49:56 +1100 Subject: [PATCH 2/3] Added ? to make columnNumber optional --- types/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/index.d.ts b/types/index.d.ts index 89be801..05c9e68 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -22,7 +22,7 @@ declare namespace FirebaseCrashlytics { functionName: string; fileName: string; lineNumber: number; - columnNumber: number; + columnNumber?: number; } } From 0dd2251532c4fa7b266c33228db550c9717db177 Mon Sep 17 00:00:00 2001 From: 8bhsolutions <48874658+8bhsolutions@users.noreply.github.com> Date: Mon, 25 Jan 2021 14:16:53 +1100 Subject: [PATCH 3/3] Append lineNumber first * The string shown in Crashlytics is {filename}:{line}. without the line number, the string is filename:col:line, which does follow standard convention --- .../cordova/plugin/firebase/crashlytics/LogErrorHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java b/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java index 94bcf3f..ce50301 100644 --- a/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java +++ b/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java @@ -57,7 +57,7 @@ public JavascriptException(String message, StackTraceLine[] stackTraceLines) { for(int i = 0; i < stackTraceLines.length; i++) { String filename = stackTraceLines[i].fileName; if(stackTraceLines[i].columnNumber > 0) { - filename = filename + ":" + stackTraceLines[i].columnNumber; + filename = filename + ":" + stackTraceLines[i].lineNumber + ":" + stackTraceLines[i].columnNumber; } stackTrace[i] = new StackTraceElement(