Skip to content

Commit d0e0955

Browse files
Thomas Nardonefacebook-github-bot
authored andcommitted
Flip SurfaceMountingManager null view state SoftException to not crash (facebook#49271)
Summary: This error is somewhat expected, so causing the red box error popup is a bit too disruptive. Flip it to a no-crash exception. Changelog: [Internal] Reviewed By: Abbondanzo Differential Revision: D69125274
1 parent 14540e6 commit d0e0955

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,6 +1387,7 @@ public final class com/facebook/react/bridge/ReactSoftExceptionLogger$Categories
13871387
public static final field RVG_IS_VIEW_CLIPPED Ljava/lang/String;
13881388
public static final field RVG_ON_VIEW_REMOVED Ljava/lang/String;
13891389
public static final field SOFT_ASSERTIONS Ljava/lang/String;
1390+
public static final field SURFACE_MOUNTING_MANAGER_MISSING_VIEWSTATE Ljava/lang/String;
13901391
}
13911392

13921393
public abstract interface class com/facebook/react/bridge/ReactSoftExceptionLogger$ReactSoftExceptionListener {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public object ReactSoftExceptionLogger {
1919
public const val RVG_IS_VIEW_CLIPPED: String = "ReactViewGroup.isViewClipped"
2020
public const val RVG_ON_VIEW_REMOVED: String = "ReactViewGroup.onViewRemoved"
2121
public const val SOFT_ASSERTIONS: String = "SoftAssertions"
22+
public const val SURFACE_MOUNTING_MANAGER_MISSING_VIEWSTATE: String =
23+
"SurfaceMountingManager:MissingViewState"
2224
}
2325

2426
// Use a list instead of a set here because we expect the number of listeners

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.facebook.common.logging.FLog;
2222
import com.facebook.infer.annotation.Assertions;
2323
import com.facebook.infer.annotation.ThreadConfined;
24+
import com.facebook.react.bridge.ReactNoCrashSoftException;
2425
import com.facebook.react.bridge.ReactSoftExceptionLogger;
2526
import com.facebook.react.bridge.ReadableArray;
2627
import com.facebook.react.bridge.ReadableMap;
@@ -1033,8 +1034,8 @@ public void deleteView(int reactTag) {
10331034

10341035
if (viewState == null) {
10351036
ReactSoftExceptionLogger.logSoftException(
1036-
MountingManager.TAG,
1037-
new IllegalStateException(
1037+
ReactSoftExceptionLogger.Categories.SURFACE_MOUNTING_MANAGER_MISSING_VIEWSTATE,
1038+
new ReactNoCrashSoftException(
10381039
"Unable to find viewState for tag: " + reactTag + " for deleteView"));
10391040
return;
10401041
}

0 commit comments

Comments
 (0)