From a655913ee96074b41efcdcf5184af8c4e33d044e Mon Sep 17 00:00:00 2001 From: pancx Date: Wed, 15 Jan 2025 20:19:02 +0800 Subject: [PATCH] [#6236] fix(core): fix possible resource leak in BaseCatalog fix conflict. --- .../java/org/apache/gravitino/connector/BaseCatalog.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/apache/gravitino/connector/BaseCatalog.java b/core/src/main/java/org/apache/gravitino/connector/BaseCatalog.java index 35fd0ba03e2..508ccf9ca21 100644 --- a/core/src/main/java/org/apache/gravitino/connector/BaseCatalog.java +++ b/core/src/main/java/org/apache/gravitino/connector/BaseCatalog.java @@ -37,6 +37,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.ws.rs.HEAD; + /** * The abstract base class for Catalog implementations. * @@ -208,7 +210,11 @@ public void initAuthorizationPluginInstance(IsolatedClassLoader classLoader) { try (BaseAuthorization authorization = BaseAuthorization.createAuthorization(classLoader, authorizationProvider)) { authorizationPlugin = - authorization.newPlugin(entity.namespace().level(0), provider(), this.conf); + classLoader.withClassLoader( + cl -> + authorization.newPlugin( + entity.namespace().level(0), provider(), this.conf)); + } catch (Exception e) { LOG.error("Failed to load authorization with class loader", e); throw new RuntimeException(e);