You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2021/02/26 08:46:52 UTC
[dubbo] branch 3.0 updated: enhance customized classloader path
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new 0a8747a enhance customized classloader path
0a8747a is described below
commit 0a8747a678fcff10582644f21afd6441a8bcfda1
Author: ken.lj <ke...@gmail.com>
AuthorDate: Sat Feb 20 14:42:12 2021 +0800
enhance customized classloader path
---
.../common/bytecode/CustomizedLoaderClassPath.java | 38 +++++++++++++++++-----
1 file changed, 30 insertions(+), 8 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java
index b1ef491..4afc886 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java
@@ -66,11 +66,22 @@ public class CustomizedLoaderClassPath implements ClassPath {
if (cl == null) {
return null; // not found
} else {
- InputStream result = cl.getResourceAsStream(cname);
- if (result == null && (cl != this.getClass().getClassLoader())) {
- return this.getClass().getClassLoader().getResourceAsStream(cname);
+ InputStream result;
+
+ if (classname.startsWith("org.apache.dubbo") && cl != this.getClass().getClassLoader()) {
+ result = this.getClass().getClassLoader().getResourceAsStream(cname);
+ if (result != null) {
+ return result;
+ } else {
+ return cl.getResourceAsStream(cname);
+ }
+ } else {
+ result = cl.getResourceAsStream(cname);
+ if (result == null && (cl != this.getClass().getClassLoader())) {
+ return this.getClass().getClassLoader().getResourceAsStream(cname);
+ }
+ return result;
}
- return result;
}
}
@@ -87,11 +98,22 @@ public class CustomizedLoaderClassPath implements ClassPath {
if (cl == null) {
return null; // not found
} else {
- URL url = cl.getResource(cname);
- if (url == null && (cl != this.getClass().getClassLoader())) {
- return this.getClass().getClassLoader().getResource(cname);
+ URL url;
+
+ if (classname.startsWith("org.apache.dubbo") && cl != this.getClass().getClassLoader()) {
+ url = this.getClass().getClassLoader().getResource(cname);
+ if (url != null) {
+ return url;
+ } else {
+ return cl.getResource(cname);
+ }
+ } else {
+ url = cl.getResource(cname);
+ if (url == null && (cl != this.getClass().getClassLoader())) {
+ return this.getClass().getClassLoader().getResource(cname);
+ }
+ return url;
}
- return url;
}
}