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

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


The following commit(s) were added to refs/heads/master by this push:
     new e9cc082  Fixes npe when proxy start without metrics (#6182)
e9cc082 is described below

commit e9cc08271ed7dec282a89a33b9b6f934b11d7ede
Author: Haoran Meng <loca...@163.com>
AuthorDate: Wed Jun 24 16:14:16 2020 +0800

    Fixes npe when proxy start without metrics (#6182)
---
 .../shardingsphere/orchestration/core/configcenter/ConfigCenter.java | 3 ++-
 .../src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java     | 5 ++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
 
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
index e16c9c1..c239d68 100644
--- 
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
+++ 
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-configcenter/src/main/java/org/apache/shardingsphere/orchestration/core/configcenter/ConfigCenter.java
@@ -272,7 +272,8 @@ public final class ConfigCenter {
      * @return metrics configuration
      */
     public MetricsConfiguration loadMetricsConfiguration() {
-        return new 
MetricsConfigurationYamlSwapper().swapToObject(YamlEngine.unmarshal(repository.get(node.getMetricsPath()),
 YamlMetricsConfiguration.class));
+        return Strings.isNullOrEmpty(repository.get(node.getMetricsPath())) ? 
null
+            : new 
MetricsConfigurationYamlSwapper().swapToObject(YamlEngine.unmarshal(repository.get(node.getMetricsPath()),
 YamlMetricsConfiguration.class));
     }
     
     /**
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
index c727ab2..49c24ac 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
@@ -235,9 +235,8 @@ public final class Bootstrap {
             
shardingOrchestrationFacade.init(getDataSourceConfigurationMap(ruleConfigs),
                     getRuleConfigurations(ruleConfigs), new 
AuthenticationYamlSwapper().swapToObject(serverConfig.getAuthentication()), 
serverConfig.getProps());
         }
-        shardingOrchestrationFacade.initMetricsConfiguration(new 
MetricsConfigurationYamlSwapper().swapToObject(serverConfig.getMetrics()));
-        shardingOrchestrationFacade.initClusterConfiguration(null == 
serverConfig.getCluster() ? null
-                : new 
ClusterConfigurationYamlSwapper().swapToObject(serverConfig.getCluster()));
+        
shardingOrchestrationFacade.initMetricsConfiguration(Optional.ofNullable(serverConfig.getMetrics()).map(new
 MetricsConfigurationYamlSwapper()::swapToObject).orElse(null));
+        
shardingOrchestrationFacade.initClusterConfiguration(Optional.ofNullable(serverConfig.getCluster()).map(new
 ClusterConfigurationYamlSwapper()::swapToObject).orElse(null));
     }
     
     private static void initOpenTracing() {

Reply via email to