You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/08/03 15:44:39 UTC
[dubbo] branch 3.0 updated: fix error when register dubbo bootstrap
application listener in hsf consumer bean (#8410)
This is an automated email from the ASF dual-hosted git repository.
albumenj 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 63baa5c fix error when register dubbo bootstrap application listener in hsf consumer bean (#8410)
63baa5c is described below
commit 63baa5c0432ad3f51ea7e583f0b0af4863804238
Author: Gong Dewei <ky...@qq.com>
AuthorDate: Tue Aug 3 23:44:23 2021 +0800
fix error when register dubbo bootstrap application listener in hsf consumer bean (#8410)
---
.../context/DubboBootstrapApplicationListener.java | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java
index e30892d..90d0680 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java
@@ -82,7 +82,11 @@ public class DubboBootstrapApplicationListener implements ApplicationListener, A
private void initDubboConfigBeans() {
// load DubboConfigBeanInitializer to init config beans
- applicationContext.getBean(DubboConfigBeanInitializer.BEAN_NAME, DubboConfigBeanInitializer.class);
+ if (applicationContext.containsBean(DubboConfigBeanInitializer.BEAN_NAME)) {
+ applicationContext.getBean(DubboConfigBeanInitializer.BEAN_NAME, DubboConfigBeanInitializer.class);
+ } else {
+ logger.warn("Bean '" + DubboConfigBeanInitializer.BEAN_NAME + "' was not found");
+ }
// All infrastructure config beans are loaded, initialize dubbo here
DubboBootstrap.getInstance().initialize();
@@ -138,6 +142,10 @@ public class DubboBootstrapApplicationListener implements ApplicationListener, A
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
+ checkCallStackAndInit();
+ }
+
+ private void checkCallStackAndInit() {
// check call stack whether contains org.springframework.context.support.AbstractApplicationContext.registerListeners()
Exception exception = new Exception();
StackTraceElement[] stackTrace = exception.getStackTrace();
@@ -148,13 +156,13 @@ public class DubboBootstrapApplicationListener implements ApplicationListener, A
break;
}
}
- if (!found) {
+ if (found) {
+ // init config beans here, compatible with spring 3.x/4.1.x
+ initDubboConfigBeans();
+ } else {
logger.warn("DubboBootstrapApplicationListener initialization is unexpected, " +
- "it should be created in AbstractApplicationContext.registerListeners() method", exception);
+ "it should be created in AbstractApplicationContext.registerListeners() method", exception);
}
-
- // init config beans here, compatible with spring 3.x/4.1.x
- initDubboConfigBeans();
}
public ApplicationContext getApplicationContext() {