This is an automated email from the ASF dual-hosted git repository. diqiu50 pushed a commit to branch cherry-pick/10844-to-branch-1.2 in repository https://gitbox.apache.org/repos/asf/gravitino.git
commit 7c3c0149ee9b895eec50e2a160d17f444bfe26cd Author: Qi Yu <[email protected]> AuthorDate: Fri Apr 24 12:12:33 2026 +0800 [Cherry-pick to branch-1.2] [#10844] fix(hive): close HiveClientFactory on pool shutdown (#10854) --- .../org/apache/gravitino/hive/HiveClientPool.java | 19 +++++++++++++++++++ .../org/apache/gravitino/hive/TestHiveClientPool.java | 1 + 2 files changed, 20 insertions(+) diff --git a/catalogs/hive-metastore-common/src/main/java/org/apache/gravitino/hive/HiveClientPool.java b/catalogs/hive-metastore-common/src/main/java/org/apache/gravitino/hive/HiveClientPool.java index e4d78e58c7..92ca495d61 100644 --- a/catalogs/hive-metastore-common/src/main/java/org/apache/gravitino/hive/HiveClientPool.java +++ b/catalogs/hive-metastore-common/src/main/java/org/apache/gravitino/hive/HiveClientPool.java @@ -18,6 +18,7 @@ */ package org.apache.gravitino.hive; +import com.google.common.annotations.VisibleForTesting; import java.util.Properties; import org.apache.gravitino.exceptions.GravitinoRuntimeException; import org.apache.gravitino.hive.client.HiveClient; @@ -69,6 +70,24 @@ public class HiveClientPool extends ClientPoolImpl<HiveClient, GravitinoRuntimeE return false; } + @Override + public void close() { + if (isClosed()) { + return; + } + + try { + super.close(); + } finally { + closeClientFactory(); + } + } + + @VisibleForTesting + void closeClientFactory() { + clientFactory.close(); + } + @Override protected void close(HiveClient client) { LOG.info("Closing Hive Metastore client"); diff --git a/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/TestHiveClientPool.java b/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/TestHiveClientPool.java index 83f397606d..012b4e5a9b 100644 --- a/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/TestHiveClientPool.java +++ b/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/TestHiveClientPool.java @@ -90,6 +90,7 @@ public class TestHiveClientPool { clients.close(); assertTrue(clients.isClosed()); Mockito.verify(hiveClient).close(); + Mockito.verify(clients).closeClientFactory(); } private HiveClient newClient() {
