From 5de1151bdd48a9bc6ec6dae325c9a260121b6e04 Mon Sep 17 00:00:00 2001 From: Andrei Coman Date: Fri, 3 Jun 2016 02:58:36 -0700 Subject: [PATCH] Fix NPE in cancelling network calls Summary: Issue reported here https://github.com/facebook/react-native/issues/7755#issuecomment-222950463 Converting int to Integer explicitly and not cancelling the call more than once should fix it. Reviewed By: bestander Differential Revision: D3371238 fbshipit-source-id: cb00663b4ca19a788bd27b971b6447cc0788a818 --- .../java/com/facebook/react/common/network/OkHttpCallUtil.java | 2 ++ .../com/facebook/react/modules/network/NetworkingModule.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java b/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java index 4da3a5e9b80..1d199203c42 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java +++ b/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java @@ -24,11 +24,13 @@ public class OkHttpCallUtil { for (Call call : client.dispatcher().queuedCalls()) { if (tag.equals(call.request().tag())) { call.cancel(); + return; } } for (Call call : client.dispatcher().runningCalls()) { if (tag.equals(call.request().tag())) { call.cancel(); + return; } } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java index 1410f085eff..97a8039658e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java @@ -384,7 +384,7 @@ public final class NetworkingModule extends ReactContextBaseJavaModule { new GuardedAsyncTask(getReactApplicationContext()) { @Override protected void doInBackgroundGuarded(Void... params) { - OkHttpCallUtil.cancelTag(mClient, requestId); + OkHttpCallUtil.cancelTag(mClient, Integer.valueOf(requestId)); } }.execute(); }