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 2022/01/25 02:45:20 UTC
[dubbo] 01/03: check interfaceClass and classLoader before load
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
commit 247a0ee9f4c771d3d1dcd397fdccca07fffe3755
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Jan 19 10:31:06 2022 +0800
check interfaceClass and classLoader before load
---
.../src/main/java/org/apache/dubbo/config/ReferenceConfig.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index 0632cd3..02cf62c 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -566,11 +566,11 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
interfaceClass = GenericService.class;
} else {
try {
- if (getInterfaceClassLoader() != null) {
+ if (getInterfaceClassLoader() != null && (interfaceClass == null || interfaceClass.getClassLoader() != getInterfaceClassLoader())) {
interfaceClass = Class.forName(interfaceName, true, getInterfaceClassLoader());
- } else {
+ } else if (interfaceClass == null) {
interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()
- .getContextClassLoader());
+ .getContextClassLoader());
}
} catch (ClassNotFoundException e) {
throw new IllegalStateException(e.getMessage(), e);