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

iluo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new ea71adb  Graceful shutdown enhancement in Spring (#2901)
ea71adb is described below

commit ea71adbf2a9526e3091b5c15d59e5e4b8872ca81
Author: LiZhen <[email protected]>
AuthorDate: Fri Dec 7 11:17:41 2018 +0800

    Graceful shutdown enhancement in Spring (#2901)
---
 .../src/main/java/org/apache/dubbo/config/DubboShutdownHook.java    | 4 ++--
 .../dubbo/config/spring/extension/SpringExtensionFactory.java       | 6 ++----
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
index 90ed237..d554281 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
@@ -55,13 +55,13 @@ public class DubboShutdownHook extends Thread {
         if (logger.isInfoEnabled()) {
             logger.info("Run shutdown hook now.");
         }
-        destroyAll();
+        doDestroy();
     }
 
     /**
      * Destroy all the resources, including registries and protocols.
      */
-    public void destroyAll() {
+    public void doDestroy() {
         if (!destroyed.compareAndSet(false, true)) {
             return;
         }
diff --git 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
index 99b538c..755db1a 100644
--- 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
+++ 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java
@@ -44,6 +44,7 @@ public class SpringExtensionFactory implements 
ExtensionFactory {
 
     public static void addApplicationContext(ApplicationContext context) {
         contexts.add(context);
+        
Runtime.getRuntime().removeShutdownHook(DubboShutdownHook.getDubboShutdownHook());
         BeanFactoryUtils.addApplicationListener(context, shutdownHookListener);
     }
 
@@ -105,11 +106,8 @@ public class SpringExtensionFactory implements 
ExtensionFactory {
         @Override
         public void onApplicationEvent(ApplicationEvent event) {
             if (event instanceof ContextClosedEvent) {
-                // we call it anyway since dubbo shutdown hook make sure its 
destroyAll() is re-entrant.
-                // pls. note we should not remove dubbo shutdown hook when 
spring framework is present, this is because
-                // its shutdown hook may not be installed.
                 DubboShutdownHook shutdownHook = 
DubboShutdownHook.getDubboShutdownHook();
-                shutdownHook.destroyAll();
+                shutdownHook.doDestroy();
             }
         }
     }

Reply via email to