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 83049b7bd [hotfix] Do not use Thread classloader
83049b7bd is described below

commit 83049b7bd4dd772e8ecef974e42f7ad6f0ad0969
Author: Jingsong <[email protected]>
AuthorDate: Tue Jul 11 16:10:18 2023 +0800

    [hotfix] Do not use Thread classloader
---
 .../scala/org/apache/paimon/codegen/EqualiserCodeGenerator.scala | 2 +-
 .../src/main/java/org/apache/paimon/format/FileFormat.java       | 2 +-
 paimon-core/src/main/java/org/apache/paimon/CoreOptions.java     | 4 +---
 .../src/main/java/org/apache/paimon/catalog/CatalogFactory.java  | 2 +-
 .../main/java/org/apache/paimon/format/FileFormatDiscover.java   | 9 +++------
 5 files changed, 7 insertions(+), 12 deletions(-)

diff --git 
a/paimon-codegen/src/main/scala/org/apache/paimon/codegen/EqualiserCodeGenerator.scala
 
b/paimon-codegen/src/main/scala/org/apache/paimon/codegen/EqualiserCodeGenerator.scala
index 27da7a67a..b3c326f5d 100644
--- 
a/paimon-codegen/src/main/scala/org/apache/paimon/codegen/EqualiserCodeGenerator.scala
+++ 
b/paimon-codegen/src/main/scala/org/apache/paimon/codegen/EqualiserCodeGenerator.scala
@@ -146,7 +146,7 @@ class EqualiserCodeGenerator(fieldTypes: Array[DataType]) {
       ctx.addReusableInitStatement(
         s"""
            |$equaliserTerm = ($equaliserTypeTerm)
-           |  
$generatedEqualiserTerm.newInstance(Thread.currentThread().getContextClassLoader());
+           |  
$generatedEqualiserTerm.newInstance(this.getClass().getClassLoader());
            |""".stripMargin)
       ("", s"$equaliserTerm.equals($leftFieldTerm, $rightFieldTerm)")
     } else {
diff --git 
a/paimon-common/src/main/java/org/apache/paimon/format/FileFormat.java 
b/paimon-common/src/main/java/org/apache/paimon/format/FileFormat.java
index 2197c513f..bf7bc006f 100644
--- a/paimon-common/src/main/java/org/apache/paimon/format/FileFormat.java
+++ b/paimon-common/src/main/java/org/apache/paimon/format/FileFormat.java
@@ -89,7 +89,7 @@ public abstract class FileFormat {
     /** Create a {@link FileFormat} from format identifier and format options. 
*/
     public static FileFormat fromIdentifier(String identifier, FormatContext 
context) {
         Optional<FileFormat> format =
-                fromIdentifier(identifier, context, 
Thread.currentThread().getContextClassLoader());
+                fromIdentifier(identifier, context, 
FileFormat.class.getClassLoader());
         return format.orElseGet(
                 () ->
                         fromIdentifier(identifier, context, 
FileFormat.class.getClassLoader())
diff --git a/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java 
b/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java
index 06187b8b7..f49ee2bd5 100644
--- a/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java
@@ -1111,9 +1111,7 @@ public class CoreOptions implements Serializable {
 
             Class<?> clazz;
             try {
-                clazz =
-                        Class.forName(
-                                className, true, 
Thread.currentThread().getContextClassLoader());
+                clazz = Class.forName(className, true, 
this.getClass().getClassLoader());
             } catch (ClassNotFoundException e) {
                 throw new RuntimeException(e);
             }
diff --git 
a/paimon-core/src/main/java/org/apache/paimon/catalog/CatalogFactory.java 
b/paimon-core/src/main/java/org/apache/paimon/catalog/CatalogFactory.java
index 93fa18e7f..8a6bab4b1 100644
--- a/paimon-core/src/main/java/org/apache/paimon/catalog/CatalogFactory.java
+++ b/paimon-core/src/main/java/org/apache/paimon/catalog/CatalogFactory.java
@@ -55,7 +55,7 @@ public interface CatalogFactory extends Factory {
      * default.
      */
     static Catalog createCatalog(CatalogContext options) {
-        return createCatalog(options, 
Thread.currentThread().getContextClassLoader());
+        return createCatalog(options, CatalogFactory.class.getClassLoader());
     }
 
     static Catalog createCatalog(CatalogContext context, ClassLoader 
classLoader) {
diff --git 
a/paimon-core/src/main/java/org/apache/paimon/format/FileFormatDiscover.java 
b/paimon-core/src/main/java/org/apache/paimon/format/FileFormatDiscover.java
index 67d0dd343..dd2a18e51 100644
--- a/paimon-core/src/main/java/org/apache/paimon/format/FileFormatDiscover.java
+++ b/paimon-core/src/main/java/org/apache/paimon/format/FileFormatDiscover.java
@@ -47,11 +47,8 @@ public interface FileFormatDiscover {
 
     static FileFormat getFileFormat(Options options, String formatIdentifier) {
         int readBatchSize = options.get(CoreOptions.READ_BATCH_SIZE);
-        FileFormat fileFormat =
-                FileFormat.fromIdentifier(
-                        formatIdentifier,
-                        new FormatContext(
-                                options.removePrefix(formatIdentifier + "."), 
readBatchSize));
-        return fileFormat;
+        return FileFormat.fromIdentifier(
+                formatIdentifier,
+                new FormatContext(options.removePrefix(formatIdentifier + 
"."), readBatchSize));
     }
 }

Reply via email to