From b5c3550857bd7360e7b5b6e227d795f859202245 Mon Sep 17 00:00:00 2001 From: Andy Street Date: Thu, 7 Jul 2016 09:10:42 -0700 Subject: [PATCH] Don't hard crash if you get a null stack trace in Android Summary: If stacktrace-parser can't parse a stack trace, it'll return null. This can cause us to accidentally enter a crash loop where whenever you start your app, you load the last JS bundle you had, get a crash, and then hard crash trying to print the stack trace. Reviewed By: frantic Differential Revision: D3528141 fbshipit-source-id: 1146f43bc40492bfa79b6a1c0f81092383896164 --- .../com/facebook/react/devsupport/StackTraceHelper.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java index 007f3607ae..a2b1bb2a8f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java @@ -9,6 +9,8 @@ package com.facebook.react.devsupport; +import javax.annotation.Nullable; + import java.io.File; import com.facebook.react.bridge.ReadableArray; @@ -91,9 +93,10 @@ public class StackTraceHelper { * Convert a JavaScript stack trace (see {@code parseErrorStack} JS module) to an array of * {@link StackFrame}s. */ - public static StackFrame[] convertJsStackTrace(ReadableArray stack) { - StackFrame[] result = new StackFrame[stack.size()]; - for (int i = 0; i < stack.size(); i++) { + public static StackFrame[] convertJsStackTrace(@Nullable ReadableArray stack) { + int size = stack != null ? stack.size() : 0; + StackFrame[] result = new StackFrame[size]; + for (int i = 0; i < size; i++) { ReadableMap frame = stack.getMap(i); String methodName = frame.getString("methodName"); String fileName = frame.getString("file");