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


##########
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:
   Why does the `Configuration` type parameter `conf` set to null?



-- 
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