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/29 07:07:02 UTC

[dubbo] branch 3.0 updated: only process context event of current context (#9637)

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 467d832  only process context event of current context (#9637)
467d832 is described below

commit 467d83202e164702022884cc166fcb763701d6f3
Author: jessin <18...@163.com>
AuthorDate: Sat Jan 29 15:06:46 2022 +0800

    only process context event of current context (#9637)
---
 .../context/DubboConfigApplicationListener.java      | 20 +++++++++++---------
 .../context/DubboDeployApplicationListener.java      | 16 +++++++++-------
 2 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboConfigApplicationListener.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboConfigApplicationListener.java
index 96c11fa..e1153e2 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboConfigApplicationListener.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboConfigApplicationListener.java
@@ -16,19 +16,19 @@
  */
 package org.apache.dubbo.config.spring.context;
 
-import org.apache.dubbo.config.spring.context.event.DubboConfigInitEvent;
-import org.apache.dubbo.config.spring.util.DubboBeanUtils;
-import org.apache.dubbo.rpc.model.ModuleModel;
+import static org.springframework.util.ObjectUtils.nullSafeEquals;
 
+import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.dubbo.config.spring.context.event.DubboConfigInitEvent;
+import org.apache.dubbo.config.spring.util.DubboBeanUtils;
+import org.apache.dubbo.rpc.model.ModuleModel;
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ApplicationListener;
 
-import java.util.concurrent.atomic.AtomicBoolean;
-
 /**
  * An ApplicationListener to load config beans
  */
@@ -50,10 +50,12 @@ public class DubboConfigApplicationListener implements ApplicationListener<Dubbo
 
     @Override
     public void onApplicationEvent(DubboConfigInitEvent event) {
-        // It's expected to be notify at org.springframework.context.support.AbstractApplicationContext.registerListeners(),
-        // before loading non-lazy singleton beans. At this moment, all BeanFactoryPostProcessor have been processed,
-        if (initialized.compareAndSet(false, true)) {
-            initDubboConfigBeans();
+        if (nullSafeEquals(applicationContext, event.getSource())) {
+            // It's expected to be notify at org.springframework.context.support.AbstractApplicationContext.registerListeners(),
+            // before loading non-lazy singleton beans. At this moment, all BeanFactoryPostProcessor have been processed,
+            if (initialized.compareAndSet(false, true)) {
+                initDubboConfigBeans();
+            }
         }
     }
 
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java
index 8b8ed06..60188a4 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/DubboDeployApplicationListener.java
@@ -16,6 +16,9 @@
  */
 package org.apache.dubbo.config.spring.context;
 
+import static org.springframework.util.ObjectUtils.nullSafeEquals;
+
+import java.util.concurrent.Future;
 import org.apache.dubbo.common.deploy.DeployListenerAdapter;
 import org.apache.dubbo.common.deploy.DeployState;
 import org.apache.dubbo.common.deploy.ModuleDeployer;
@@ -27,7 +30,6 @@ import org.apache.dubbo.config.spring.util.DubboBeanUtils;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 import org.apache.dubbo.rpc.model.ModelConstants;
 import org.apache.dubbo.rpc.model.ModuleModel;
-
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
@@ -37,8 +39,6 @@ import org.springframework.context.event.ContextClosedEvent;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.core.Ordered;
 
-import java.util.concurrent.Future;
-
 /**
  * An ApplicationListener to control Dubbo application.
  */
@@ -95,10 +95,12 @@ public class DubboDeployApplicationListener implements ApplicationListener<Appli
 
     @Override
     public void onApplicationEvent(ApplicationContextEvent event) {
-        if (event instanceof ContextRefreshedEvent) {
-            onContextRefreshedEvent((ContextRefreshedEvent) event);
-        } else if (event instanceof ContextClosedEvent) {
-            onContextClosedEvent((ContextClosedEvent) event);
+        if (nullSafeEquals(applicationContext, event.getSource())) {
+            if (event instanceof ContextRefreshedEvent) {
+                onContextRefreshedEvent((ContextRefreshedEvent) event);
+            } else if (event instanceof ContextClosedEvent) {
+                onContextClosedEvent((ContextClosedEvent) event);
+            }
         }
     }