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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1cf911d  [master] Fix #8240, on branch master, when provider and 
consumer stop cause NPE (#8927)
1cf911d is described below

commit 1cf911d27dc1d3b5e373a749c33641aafeac53f1
Author: Wang Chengming <[email protected]>
AuthorDate: Thu Sep 30 10:16:41 2021 +0800

    [master] Fix #8240, on branch master, when provider and consumer stop cause 
NPE (#8927)
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
    
    * fix #8240: on branch master, when provider and consumer stop cause NPE
---
 .../java/org/apache/dubbo/rpc/model/ApplicationModel.java |  5 ++---
 .../org/apache/dubbo/config/bootstrap/DubboBootstrap.java | 15 +++++----------
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
index 1c41502..dea4024 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java
@@ -25,7 +25,6 @@ import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.config.context.ConfigManager;
 
 import java.util.Collection;
-import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -118,8 +117,8 @@ public class ApplicationModel {
         if (application != null) {
             return application;
         }
-        Optional<ApplicationConfig> appCfgOptional = 
getConfigManager().getApplication();
-        return appCfgOptional.isPresent() ? appCfgOptional.get().getName() : 
null;
+        return getConfigManager().getApplication()
+                .map(ApplicationConfig::getName).orElse(null);
     }
 
     // Currently used by UT.
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
index e6e0307..17ee8cf 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
@@ -1266,13 +1266,13 @@ public class DubboBootstrap {
                     }
                     destroyServiceDiscoveries();
                     destroyExecutorRepository();
-                    clear();
-                    shutdown();
+                    DubboShutdownHook.destroyAll();
+                    clearConfigManager();
+                    shutdownExecutor();
                     release();
                     ExtensionLoader<DubboBootstrapStartStopListener> exts = 
getExtensionLoader(DubboBootstrapStartStopListener.class);
                     exts.getSupportedExtensionInstances().forEach(ext -> 
ext.onStop(this));
                 }
-                DubboShutdownHook.destroyAll();
             } finally {
                 initialized.set(false);
                 destroyLock.unlock();
@@ -1295,13 +1295,8 @@ public class DubboBootstrap {
         }
     }
 
-    private void clear() {
+    private void clearConfigManager() {
         clearConfigs();
-        clearApplicationModel();
-    }
-
-    private void clearApplicationModel() {
-
     }
 
     private void clearConfigs() {
@@ -1322,7 +1317,7 @@ public class DubboBootstrap {
         });
     }
 
-    private void shutdown() {
+    private void shutdownExecutor() {
         if (!executorService.isShutdown()) {
             // Shutdown executorService
             executorService.shutdown();

Reply via email to