tsreaper commented on code in PR #764:
URL: https://github.com/apache/incubator-paimon/pull/764#discussion_r1152731838


##########
paimon-hive/paimon-hive-catalog/src/main/java/org/apache/paimon/hive/HiveCatalog.java:
##########
@@ -470,17 +472,53 @@ private Lock lock(Identifier identifier) {
         return Lock.fromCatalog(lock, identifier);
     }
 
+    private static final List<Class<?>[]> GET_PROXY_PARAMS =
+            Arrays.asList(
+                    // for hive 2.x
+                    new Class<?>[] {
+                        HiveConf.class,
+                        HiveMetaHookLoader.class,
+                        ConcurrentHashMap.class,
+                        String.class,
+                        Boolean.TYPE
+                    },
+                    // for hive 3.x
+                    new Class<?>[] {
+                        Configuration.class,
+                        HiveMetaHookLoader.class,
+                        ConcurrentHashMap.class,
+                        String.class,
+                        Boolean.TYPE
+                    });
+
     static IMetaStoreClient createClient(HiveConf hiveConf, String 
clientClassName) {
+        Method getProxy = null;
+        RuntimeException methodNotFound =
+                new RuntimeException(
+                        "Failed to find desired getProxy method from 
RetryingMetaStoreClient");
+        for (Class<?>[] classes : GET_PROXY_PARAMS) {
+            try {
+                getProxy = RetryingMetaStoreClient.class.getMethod("getProxy", 
classes);
+            } catch (NoSuchMethodException e) {
+                methodNotFound.addSuppressed(e);
+            }
+        }
+        if (getProxy == null) {
+            throw methodNotFound;
+        }
+
         IMetaStoreClient client;
         try {
             client =
-                    RetryingMetaStoreClient.getProxy(
-                            hiveConf,
-                            tbl -> null,
-                            new ConcurrentHashMap<>(),
-                            clientClassName,
-                            true);
-        } catch (MetaException e) {
+                    (IMetaStoreClient)
+                            getProxy.invoke(
+                                    null,
+                                    hiveConf,

Review Comment:
   The first parameter of `Method#invoke` is on which object you're calling 
this method. As this is a static method, this parameter should be `null`. 
Arguments for the original method starts from the second parameter.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@paimon.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to