From 77ea9fd1f844f6b6fe6eba2ed1ac61dd8317b3e4 Mon Sep 17 00:00:00 2001 From: Gijs Weterings Date: Wed, 9 Apr 2025 09:07:30 -0700 Subject: [PATCH] [Nullsafe fix nullsafe FIXMEs for BaseJavaModule.java and mark nullsafe Summary: Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations. Changelog: [Android][Fixed] Made BaseJavaModule.java nullsafe Reviewed By: alanleedev Differential Revision: D72384078 fbshipit-source-id: aba0f261f3b3e77133ff2a148bf4903c73c54691 --- .../java/com/facebook/react/animated/NativeAnimatedModule.kt | 2 +- .../main/java/com/facebook/react/bridge/BaseJavaModule.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt index 4ffd714aec3..175ea416605 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt @@ -442,7 +442,7 @@ public class NativeAnimatedModule(reactContext: ReactApplicationContext?) : return } - val reactApplicationContext = reactApplicationContext + val reactApplicationContext = reactApplicationContextIfActiveOrWarn if (reactApplicationContext != null) { val uiManager = UIManagerHelper.getUIManager(reactApplicationContext, uiManagerType) if (uiManager != null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java index 66e8d216397..3fec048a770 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java @@ -12,6 +12,7 @@ import static com.facebook.infer.annotation.ThreadConfined.ANY; import androidx.annotation.Nullable; import com.facebook.common.logging.FLog; import com.facebook.infer.annotation.Assertions; +import com.facebook.infer.annotation.Nullsafe; import com.facebook.infer.annotation.ThreadConfined; import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.common.ReactConstants; @@ -48,6 +49,7 @@ import java.util.Map; *

Please note that it is not allowed to have multiple methods annotated with {@link ReactMethod} * with the same name. */ +@Nullsafe(Nullsafe.Mode.LOCAL) @StableReactNativeAPI public abstract class BaseJavaModule implements NativeModule { // taken from Libraries/Utilities/MessageQueue.js @@ -118,8 +120,7 @@ public abstract class BaseJavaModule implements NativeModule { */ @ThreadConfined(ANY) protected @Nullable final ReactApplicationContext getReactApplicationContextIfActiveOrWarn() { - // NULLSAFE_FIXME[Nullable Dereference] - if (mReactApplicationContext.hasActiveReactInstance()) { + if (mReactApplicationContext != null && mReactApplicationContext.hasActiveReactInstance()) { return mReactApplicationContext; }