This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new 81d5b80 Add null check in SnapshotService to avoid NPE (#1734)
81d5b80 is described below
commit 81d5b8016ed270b04767dc9d0ee67b78abc99a02
Author: 吴伟杰 <[email protected]>
AuthorDate: Fri Nov 27 10:38:30 2020 +0800
Add null check in SnapshotService to avoid NPE (#1734)
* Add null check in SnapshotService to avoid NPE
* Modify default value if cacheData not present
---
.../lite/internal/snapshot/SnapshotService.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/snapshot/SnapshotService.java
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/snapshot/SnapshotService.java
index 1ce6662..311bfa4 100644
---
a/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/snapshot/SnapshotService.java
+++
b/elasticjob-lite/elasticjob-lite-core/src/main/java/org/apache/shardingsphere/elasticjob/lite/internal/snapshot/SnapshotService.java
@@ -109,14 +109,15 @@ public final class SnapshotService {
private void dumpDirectly(final String path, final String jobName, final
List<String> result) {
for (String each : regCenter.getChildrenKeys(path)) {
String zkPath = path + "/" + each;
- String zkValue = regCenter.get(zkPath);
- if (null == zkValue) {
- zkValue = "";
- }
+ String zkValue =
Optional.ofNullable(regCenter.get(zkPath)).orElse("");
+ String cachePath = zkPath;
+ String cacheValue = zkValue;
CuratorCache cache = (CuratorCache) regCenter.getRawCache("/" +
jobName);
- Optional<ChildData> cacheData = cache.get(zkPath);
- String cachePath = cacheData.map(ChildData::getPath).orElse("");
- String cacheValue = cacheData.map(childData -> new
String(childData.getData())).orElse("");
+ if (null != cache) {
+ Optional<ChildData> cacheData = cache.get(zkPath);
+ cachePath = cacheData.map(ChildData::getPath).orElse("");
+ cacheValue =
cacheData.map(ChildData::getData).map(String::new).orElse("");
+ }
if (zkValue.equals(cacheValue) && zkPath.equals(cachePath)) {
result.add(String.join(" | ", zkPath, zkValue));
} else {