This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 07b702e17 [core] Try to delete plugin jar (#1964)
07b702e17 is described below

commit 07b702e17eec83b4b25bd7dbda3bc6ae4a27d9dd
Author: Jingsong Lee <[email protected]>
AuthorDate: Fri Sep 8 11:23:57 2023 +0800

    [core] Try to delete plugin jar (#1964)
---
 .../main/java/org/apache/paimon/plugin/PluginLoader.java    | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git 
a/paimon-common/src/main/java/org/apache/paimon/plugin/PluginLoader.java 
b/paimon-common/src/main/java/org/apache/paimon/plugin/PluginLoader.java
index 2270e4a07..019b7e25c 100644
--- a/paimon-common/src/main/java/org/apache/paimon/plugin/PluginLoader.java
+++ b/paimon-common/src/main/java/org/apache/paimon/plugin/PluginLoader.java
@@ -18,6 +18,7 @@
 
 package org.apache.paimon.plugin;
 
+import org.apache.paimon.utils.FileIOUtils;
 import org.apache.paimon.utils.IOUtils;
 import org.apache.paimon.utils.LocalFileUtils;
 import org.apache.paimon.utils.StringUtils;
@@ -61,7 +62,9 @@ public class PluginLoader {
 
     private static final String[] COMPONENT_CLASSPATH = new String[] 
{"org.apache.paimon"};
 
-    private final ClassLoader submoduleClassLoader;
+    private final Path delegateJar;
+
+    private final ComponentClassLoader submoduleClassLoader;
 
     public PluginLoader(String jarName) {
         try {
@@ -71,7 +74,7 @@ public class PluginLoader {
                             .orElseGet(() -> 
Paths.get(System.getProperty("java.io.tmpdir")));
             Files.createDirectories(
                     
LocalFileUtils.getTargetPathIfContainsSymbolicPath(tmpDirectory));
-            Path delegateJar =
+            delegateJar =
                     extractResource(
                             jarName,
                             ownerClassLoader,
@@ -139,6 +142,12 @@ public class PluginLoader {
         return submoduleClassLoader;
     }
 
+    @Override
+    protected void finalize() throws IOException {
+        submoduleClassLoader.close();
+        FileIOUtils.deleteFileOrDirectory(delegateJar.toFile());
+    }
+
     private static Optional<Path> tmpDirectoryFromYarn() {
         String localDirs = System.getenv("LOCAL_DIRS");
         if (!StringUtils.isBlank(localDirs)) {

Reply via email to