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

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 7d73d4928af Fix the issue where the current thread's class loader may 
fail to load resources. (#29997)
7d73d4928af is described below

commit 7d73d4928afd1c0488b44f3fc5a69b93c35265ed
Author: Cong Hu <[email protected]>
AuthorDate: Mon Feb 5 15:42:53 2024 +0800

    Fix the issue where the current thread's class loader may fail to load 
resources. (#29997)
---
 .../infra/metadata/database/schema/builder/SystemSchemaBuilder.java   | 2 +-
 .../infra/expr/espresso/EspressoInlineExpressionParser.java           | 2 +-
 .../mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java  | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/SystemSchemaBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/SystemSchemaBuilder.java
index 5f1718f872e..085434244c2 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/SystemSchemaBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/SystemSchemaBuilder.java
@@ -84,7 +84,7 @@ public final class SystemSchemaBuilder {
         SystemSchemaBuilderRule builderRule = builderRuleOptional.get();
         Collection<InputStream> result = new LinkedList<>();
         for (String each : builderRule.getTables()) {
-            
result.add(Thread.currentThread().getContextClassLoader().getResourceAsStream("schema/"
 + databaseType.getType().toLowerCase() + "/" + schemaName + "/" + each + 
".yaml"));
+            
result.add(SystemSchemaBuilder.class.getClassLoader().getResourceAsStream("schema/"
 + databaseType.getType().toLowerCase() + "/" + schemaName + "/" + each + 
".yaml"));
         }
         return result;
     }
diff --git 
a/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/EspressoInlineExpressionParser.java
 
b/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/EspressoInlineExpressionParser.java
index 70aac2441da..4aa6871d354 100644
--- 
a/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/EspressoInlineExpressionParser.java
+++ 
b/infra/expr/type/espresso/src/main/java/org/apache/shardingsphere/infra/expr/espresso/EspressoInlineExpressionParser.java
@@ -57,7 +57,7 @@ public final class EspressoInlineExpressionParser implements 
InlineExpressionPar
             .build();
     
     static {
-        URL resource = 
Thread.currentThread().getContextClassLoader().getResource("espresso-need-libs");
+        URL resource = 
EspressoInlineExpressionParser.class.getClassLoader().getResource("espresso-need-libs");
         String dir = null == resource ? null : resource.getPath();
         JAVA_CLASSPATH = dir + File.separator + "groovy.jar";
     }
diff --git 
a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
 
b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
index fc4fe1c03fe..732f2037551 100644
--- 
a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
+++ 
b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
@@ -69,7 +69,7 @@ public final class JDBCRepositorySQLLoader {
      */
     @SneakyThrows({IOException.class, URISyntaxException.class})
     public static JDBCRepositorySQL load(final String type) {
-        Enumeration<URL> resources = 
Thread.currentThread().getContextClassLoader().getResources(ROOT_DIRECTORY);
+        Enumeration<URL> resources = 
JDBCRepositorySQLLoader.class.getClassLoader().getResources(ROOT_DIRECTORY);
         if (null == resources) {
             return null;
         }
@@ -188,7 +188,7 @@ public final class JDBCRepositorySQLLoader {
                 if (!name.startsWith(ROOT_DIRECTORY) || 
!name.endsWith(FILE_EXTENSION)) {
                     continue;
                 }
-                final InputStream inputStream = 
Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
+                final InputStream inputStream = 
JDBCRepositorySQLLoader.class.getClassLoader().getResourceAsStream(name);
                 JDBCRepositorySQL provider = XML_MAPPER.readValue(inputStream, 
JDBCRepositorySQL.class);
                 if (provider.isDefault()) {
                     result = provider;

Reply via email to