Skip to content

Commit 639392d

Browse files
Salakarkaranjthakkar
authored andcommitted
JSStackTrace -> Ensure lineNumber exists before consuming (facebook#24399)
Summary: Fixes facebook#24382 [ANDROID] [INTERNAL] - Fixed a `NoSuchKeyException` when parsing JS stack frames without line numbers. Pull Request resolved: facebook#24399 Differential Revision: D14890746 Pulled By: cpojer fbshipit-source-id: cea3653076484ad624084c370439f8a39c303083
1 parent ecdaeed commit 639392d

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,26 @@ public static String format(String message, ReadableArray stack) {
2424
stringBuilder
2525
.append(frame.getString("methodName"))
2626
.append("@")
27-
.append(parseFileId(frame))
28-
.append(frame.getInt("lineNumber"));
27+
.append(parseFileId(frame));
28+
29+
if (frame.hasKey("lineNumber") &&
30+
!frame.isNull("lineNumber") &&
31+
frame.getType("lineNumber") == ReadableType.Number) {
32+
stringBuilder
33+
.append(frame.getInt("lineNumber"));
34+
} else {
35+
stringBuilder
36+
.append(-1);
37+
}
38+
2939
if (frame.hasKey("column") &&
3040
!frame.isNull("column") &&
3141
frame.getType("column") == ReadableType.Number) {
3242
stringBuilder
3343
.append(":")
3444
.append(frame.getInt("column"));
3545
}
46+
3647
stringBuilder.append("\n");
3748
}
3849
return stringBuilder.toString();

0 commit comments

Comments
 (0)