From 56da650c9035576cdbe2141a67f14e34ebf59f91 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 17 Apr 2024 03:43:02 -0700 Subject: [PATCH] Use ClassFinder inside ViewManagerPropertyUpdater (#44114) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44114 In OSS, we should use the ClassFinder wrapper as the `Class.byName` calls will never succeed (we don't run the annotation processor in OSS). Changelog: [Internal] [Changed] - Use ClassFinder inside ViewManagerPropertyUpdater Reviewed By: arushikesarwani94 Differential Revision: D56191175 fbshipit-source-id: a67195e983774872e27d35456b45651540411e2b --- .../react/uimanager/ViewManagerPropertyUpdater.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerPropertyUpdater.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerPropertyUpdater.java index 42e9d8b2992..5751ef8f78a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerPropertyUpdater.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerPropertyUpdater.java @@ -9,6 +9,7 @@ package com.facebook.react.uimanager; import android.view.View; import com.facebook.common.logging.FLog; +import com.facebook.react.common.ClassFinder; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -109,9 +110,13 @@ public class ViewManagerPropertyUpdater { private static T findGeneratedSetter(Class cls) { String clsName = cls.getName(); try { - Class setterClass = Class.forName(clsName + "$$PropsSetter"); - //noinspection unchecked - return (T) setterClass.newInstance(); + Class setterClass = ClassFinder.findClass(clsName + "$$PropsSetter"); + if (setterClass != null) { + //noinspection unchecked + return (T) setterClass.newInstance(); + } else { + return null; + } } catch (ClassNotFoundException e) { FLog.w(TAG, "Could not find generated setter for " + cls); return null;