From 6128b7236fe854c1642360f2884d8bbdc6a13c37 Mon Sep 17 00:00:00 2001 From: Chris Hopman Date: Mon, 20 Jun 2016 12:43:41 -0700 Subject: [PATCH] Synchronously fail when calling JS too early Differential Revision: D3453476 fbshipit-source-id: 3fbfda46b4cb7d31f554df6760c5146c412ff468 --- .../java/com/facebook/react/testing/ReactTestHelper.java | 7 ++++++- .../com/facebook/react/cxxbridge/CatalystInstanceImpl.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java index 5d4ebb2d1..45f4efeb7 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java @@ -137,7 +137,12 @@ public class ReactTestHelper { return null; } }).get(); - + InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() { + @Override + public void run() { + instance.initialize(); + } + }); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java b/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java index 753ef65a6..d024e9cda 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/CatalystInstanceImpl.java @@ -191,6 +191,9 @@ public class CatalystInstanceImpl implements CatalystInstance { FLog.w(ReactConstants.TAG, "Calling JS function after bridge has been destroyed."); return; } + if (!mInitialized) { + throw new RuntimeException("Attempt to call JS function before instance initialization."); + } callJSFunction(executorToken, module, method, arguments, tracingName); }