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

kerwin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new c590ad4  fix this issue (#8509)
c590ad4 is described below

commit c590ad43d7826a2c441801d71ee07ba284cfb042
Author: calvin <[email protected]>
AuthorDate: Thu Feb 24 08:50:03 2022 +0800

    fix this issue (#8509)
---
 .../service/impl/TaskDefinitionServiceImpl.java    | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
index e722210..f5ba629 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
@@ -202,6 +202,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
                 return result;
             }
         }
+        List<ProcessTaskRelationLog> processTaskRelationLogList = 
Lists.newArrayList();
         if (StringUtils.isNotBlank(upstreamCodes)) {
             Set<Long> upstreamTaskCodes = 
Arrays.stream(upstreamCodes.split(Constants.COMMA)).map(Long::parseLong).collect(Collectors.toSet());
             List<TaskDefinition> upstreamTaskDefinitionList = 
taskDefinitionMapper.queryByCodeList(upstreamTaskCodes);
@@ -212,7 +213,6 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
                 putMsg(result, Status.TASK_DEFINE_NOT_EXIST, 
StringUtils.join(diffCode, Constants.COMMA));
                 return result;
             }
-            List<ProcessTaskRelationLog> processTaskRelationLogList = 
Lists.newArrayList();
             for (TaskDefinition upstreamTask : upstreamTaskDefinitionList) {
                 ProcessTaskRelationLog processTaskRelationLog = new 
ProcessTaskRelationLog();
                 processTaskRelationLog.setPreTaskCode(upstreamTask.getCode());
@@ -227,13 +227,23 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             if (!processTaskRelationList.isEmpty()) {
                 
processTaskRelationLogList.addAll(processTaskRelationList.stream().map(ProcessTaskRelationLog::new).collect(Collectors.toList()));
             }
-            int insertResult = processService.saveTaskRelation(loginUser, 
projectCode, processDefinition.getCode(), processDefinition.getVersion(),
-                    processTaskRelationLogList, Lists.newArrayList(), 
Boolean.TRUE);
-            if (insertResult != Constants.EXIT_CODE_SUCCESS) {
-                putMsg(result, Status.CREATE_PROCESS_TASK_RELATION_ERROR);
-                throw new 
ServiceException(Status.CREATE_PROCESS_TASK_RELATION_ERROR);
-            }
+        } else {
+            ProcessTaskRelationLog processTaskRelationLog = new 
ProcessTaskRelationLog();
+            processTaskRelationLog.setPreTaskCode(0);
+            processTaskRelationLog.setPreTaskVersion(0);
+            processTaskRelationLog.setPostTaskCode(taskCode);
+            processTaskRelationLog.setPostTaskVersion(Constants.VERSION_FIRST);
+            processTaskRelationLog.setConditionType(ConditionType.NONE);
+            processTaskRelationLog.setConditionParams("{}");
+            processTaskRelationLogList.add(processTaskRelationLog);
+        }
+        int insertResult = processService.saveTaskRelation(loginUser, 
projectCode, processDefinition.getCode(), processDefinition.getVersion(),
+            processTaskRelationLogList, Lists.newArrayList(), Boolean.TRUE);
+        if (insertResult != Constants.EXIT_CODE_SUCCESS) {
+            putMsg(result, Status.CREATE_PROCESS_TASK_RELATION_ERROR);
+            throw new 
ServiceException(Status.CREATE_PROCESS_TASK_RELATION_ERROR);
         }
+
         int saveTaskResult = processService.saveTaskDefine(loginUser, 
projectCode, Lists.newArrayList(taskDefinition), Boolean.TRUE);
         if (saveTaskResult == Constants.DEFINITION_FAILURE) {
             putMsg(result, Status.CREATE_TASK_DEFINITION_ERROR);

Reply via email to