commit | b5a4873d09af61ff3b7da8ebf4f8d67932a9e950 | [log] [tgz] |
---|---|---|
author | GuoJiwei <technoboy@apache.org> | Tue Aug 03 14:07:49 2021 +0800 |
committer | GitHub <noreply@github.com> | Tue Aug 03 14:07:49 2021 +0800 |
tree | 3ab57ab5b502073dfe6ac0d94fe08b42339eaf14 | |
parent | 054571c6d7caca455418e0f83056a0182315bd75 [diff] |
Fix NPE in InstanceService.getAvailableJobInstances (#1952) * Fix NPE in InstanceService.getAvailableJobInstances (#1950) * use orElseGet
diff --git a/elasticjob-infra/elasticjob-registry-center/src/main/java/org/apache/shardingsphere/elasticjob/reg/zookeeper/ZookeeperRegistryCenter.java b/elasticjob-infra/elasticjob-registry-center/src/main/java/org/apache/shardingsphere/elasticjob/reg/zookeeper/ZookeeperRegistryCenter.java index c414a0d..072ebfa 100644 --- a/elasticjob-infra/elasticjob-registry-center/src/main/java/org/apache/shardingsphere/elasticjob/reg/zookeeper/ZookeeperRegistryCenter.java +++ b/elasticjob-infra/elasticjob-registry-center/src/main/java/org/apache/shardingsphere/elasticjob/reg/zookeeper/ZookeeperRegistryCenter.java
@@ -137,10 +137,7 @@ return getDirectly(key); } Optional<ChildData> resultInCache = cache.get(key); - if (resultInCache.isPresent()) { - return null == resultInCache.get().getData() ? null : new String(resultInCache.get().getData(), StandardCharsets.UTF_8); - } - return getDirectly(key); + return resultInCache.map(v -> null == v.getData() ? null : new String(v.getData(), StandardCharsets.UTF_8)).orElseGet(() -> getDirectly(key)); } private CuratorCache findCuratorCache(final String key) {
diff --git a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/instance/InstanceService.java b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/instance/InstanceService.java index 6d316d9..0fb0c3b 100644 --- a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/instance/InstanceService.java +++ b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/instance/InstanceService.java
@@ -70,7 +70,7 @@ List<JobInstance> result = new LinkedList<>(); for (String each : jobNodeStorage.getJobNodeChildrenKeys(InstanceNode.ROOT)) { JobInstance jobInstance = YamlEngine.unmarshal(jobNodeStorage.getJobNodeData(instanceNode.getInstancePath(each)), JobInstance.class); - if (serverService.isEnableServer(jobInstance.getServerIp())) { + if (null != jobInstance && serverService.isEnableServer(jobInstance.getServerIp())) { result.add(new JobInstance(each)); } }