You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by li...@apache.org on 2020/01/17 08:55:09 UTC
[incubator-dolphinscheduler] branch dev updated: Fix bug:
NullPointerException etc. (#1721)
This is an automated email from the ASF dual-hosted git repository.
lidongdai pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new c522ea7 Fix bug: NullPointerException etc. (#1721)
c522ea7 is described below
commit c522ea7ebbe78df9233103b2126bf869546c73be
Author: Jave-Chen <ac...@126.com>
AuthorDate: Fri Jan 17 16:55:01 2020 +0800
Fix bug: NullPointerException etc. (#1721)
* #1720 Fix bug: NullPointerException etc.
* fix code smell
* Update DateInterval.java
refactor equals method
Co-authored-by: dailidong <da...@gmail.com>
---
.../apache/dolphinscheduler/alert/runner/AlertSender.java | 5 +++++
.../dolphinscheduler/api/service/ExecutorService.java | 8 +++++---
.../apache/dolphinscheduler/common/model/DateInterval.java | 13 ++++++-------
.../apache/dolphinscheduler/common/utils/HadoopUtils.java | 14 +++++++++-----
.../org/apache/dolphinscheduler/dao/utils/DagHelper.java | 9 +++++++--
5 files changed, 32 insertions(+), 17 deletions(-)
diff --git a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java
index d54c232..5feb36b 100644
--- a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java
+++ b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java
@@ -101,6 +101,11 @@ public class AlertSender{
}else if (alert.getAlertType() == AlertType.SMS){
retMaps = emailManager.send(getReciversForSMS(users), alert.getTitle(), alert.getContent(),alert.getShowType());
alert.setInfo(retMaps);
+ } else {
+ logger.error("AlertType is not defined. code: {}, descp: {}",
+ alert.getAlertType().getCode(),
+ alert.getAlertType().getDescp());
+ return;
}
//send flag
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
index c1689c5..8fa4c01 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
@@ -499,6 +499,10 @@ public class ExecutorService extends BaseService{
}
}
+ if ( start == null || end == null) {
+ return 0;
+ }
+
if(commandType == CommandType.COMPLEMENT_DATA){
runMode = (runMode == null) ? RunMode.RUN_MODE_SERIAL : runMode;
if(null != start && null != end && start.before(end)){
@@ -546,9 +550,7 @@ public class ExecutorService extends BaseService{
}else{
command.setCommandParam(JSONUtils.toJson(cmdParam));
return processDao.createCommand(command);
- }
-
- return 0;
+ }
}
/**
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/DateInterval.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/DateInterval.java
index 3519d5c..9dc2f34 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/DateInterval.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/DateInterval.java
@@ -35,13 +35,12 @@ public class DateInterval {
@Override
public boolean equals(Object obj) {
- try{
- DateInterval dateInterval = (DateInterval) obj;
- return startTime.equals(dateInterval.getStartTime()) &&
- endTime.equals(dateInterval.getEndTime());
- }catch (Exception e){
- return false;
- }
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ DateInterval that = (DateInterval) o;
+ return startTime.equals(that.startTime) &&
+ endTime.equals(that.endTime);
+
}
public Date getStartTime() {
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
index afc3c44..541281f 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HadoopUtils.java
@@ -119,7 +119,9 @@ public class HadoopUtils implements Closeable {
fsRelatedProps.forEach((key, value) -> configuration.set(key, value));
}else{
logger.error("property:{} can not to be empty, please set!", Constants.FS_DEFAULTFS );
- throw new RuntimeException("property:{} can not to be empty, please set!");
+ throw new RuntimeException(
+ String.format("property: %s can not to be empty, please set!", Constants.FS_DEFAULTFS)
+ );
}
}else{
logger.info("get property:{} -> {}, from core-site.xml hdfs-site.xml ", Constants.FS_DEFAULTFS, defaultFS);
@@ -219,10 +221,12 @@ public class HadoopUtils implements Closeable {
return null;
}
- FSDataInputStream in = fs.open(new Path(hdfsFilePath));
- BufferedReader br = new BufferedReader(new InputStreamReader(in));
- Stream<String> stream = br.lines().skip(skipLineNums).limit(limit);
- return stream.collect(Collectors.toList());
+ try (FSDataInputStream in = fs.open(new Path(hdfsFilePath))){
+ BufferedReader br = new BufferedReader(new InputStreamReader(in));
+ Stream<String> stream = br.lines().skip(skipLineNums).limit(limit);
+ return stream.collect(Collectors.toList());
+ }
+
}
/**
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
index 26d0f1e..ac38ddd 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
@@ -96,7 +96,13 @@ public class DagHelper {
for (String startNodeName : startNodeList) {
TaskNode startNode = findNodeByName(taskNodeList, startNodeName);
List<TaskNode> childNodeList = new ArrayList<>();
- if (TaskDependType.TASK_POST == taskDependType) {
+ if (startNode == null) {
+ logger.error("start node name [{}] is not in task node list [{}] ",
+ startNodeName,
+ taskNodeList
+ );
+ continue;
+ } else if (TaskDependType.TASK_POST == taskDependType) {
childNodeList = getFlowNodeListPost(startNode, taskNodeList);
} else if (TaskDependType.TASK_PRE == taskDependType) {
childNodeList = getFlowNodeListPre(startNode, recoveryNodeNameList, taskNodeList);
@@ -129,7 +135,6 @@ public class DagHelper {
if (null != depList && null != startNode && depList.contains(startNode.getName())) {
resultList.addAll(getFlowNodeListPost(taskNode, taskNodeList));
}
-
}
resultList.add(startNode);
return resultList;