From 7a92262b5647e9e0cb20b6d04bdb714328344064 Mon Sep 17 00:00:00 2001 From: Artur Chrusciel Date: Tue, 31 Jul 2018 09:52:04 +0200 Subject: [PATCH 1/2] Check if child view != null before dropping --- .../facebook/react/uimanager/NativeViewHierarchyManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java index 3e7d56a5e29f30..07492bac9ba6d7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java @@ -570,7 +570,7 @@ protected synchronized void dropView(View view) { ViewGroupManager viewGroupManager = (ViewGroupManager) viewManager; for (int i = viewGroupManager.getChildCount(viewGroup) - 1; i >= 0; i--) { View child = viewGroupManager.getChildAt(viewGroup, i); - if (mTagsToViews.get(child.getId()) != null) { + if (child != null && mTagsToViews.get(child.getId()) != null) { dropView(child); } } From dbb2725a2cf4ce5318c4d2b627a4d2f46a425dbf Mon Sep 17 00:00:00 2001 From: Artur Chrusciel Date: Fri, 3 Aug 2018 12:01:08 +0200 Subject: [PATCH 2/2] Log error when trying drop null child --- .../facebook/react/uimanager/NativeViewHierarchyManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java index 07492bac9ba6d7..8975c0d6bb8197 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java @@ -570,7 +570,9 @@ protected synchronized void dropView(View view) { ViewGroupManager viewGroupManager = (ViewGroupManager) viewManager; for (int i = viewGroupManager.getChildCount(viewGroup) - 1; i >= 0; i--) { View child = viewGroupManager.getChildAt(viewGroup, i); - if (child != null && mTagsToViews.get(child.getId()) != null) { + if (child == null) { + FLog.e(TAG, "Unable to drop null child view"); + } else if (mTagsToViews.get(child.getId()) != null) { dropView(child); } }