diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java index 856b8338657b3362ffe5576eaa2c629bda6e1491..18d78c161c3fc180775a475b93dc9823b14db95d 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java @@ -46,6 +46,7 @@ import org.apache.dolphinscheduler.common.utils.JSONUtils; import org.apache.dolphinscheduler.common.utils.OSUtils; import org.apache.dolphinscheduler.common.utils.ParameterUtils; import org.apache.dolphinscheduler.common.utils.StringUtils; +import org.apache.dolphinscheduler.dao.entity.ProcessDefinition; import org.apache.dolphinscheduler.dao.entity.ProcessInstance; import org.apache.dolphinscheduler.dao.entity.ProjectUser; import org.apache.dolphinscheduler.dao.entity.Schedule; @@ -525,9 +526,9 @@ public class MasterExecThread implements Runnable { return taskInstance; } - public void getPreVarPool(TaskInstance taskInstance, Set preTask) { - Map allProperty = new HashMap<>(); - Map allTaskInstance = new HashMap<>(); + public void getPreVarPool(TaskInstance taskInstance, Set preTask) { + Map allProperty = new HashMap<>(); + Map allTaskInstance = new HashMap<>(); if (CollectionUtils.isNotEmpty(preTask)) { for (String preTaskName : preTask) { TaskInstance preTaskInstance = completeTaskList.get(preTaskName); @@ -565,17 +566,17 @@ public class MasterExecThread implements Runnable { TaskInstance otherTask = allTaskInstance.get(proName); if (otherTask.getEndTime().getTime() > preTaskInstance.getEndTime().getTime()) { allProperty.put(proName, thisProperty); - allTaskInstance.put(proName,preTaskInstance); + allTaskInstance.put(proName, preTaskInstance); } else { allProperty.put(proName, otherPro); } } else { allProperty.put(proName, thisProperty); - allTaskInstance.put(proName,preTaskInstance); + allTaskInstance.put(proName, preTaskInstance); } } else { allProperty.put(proName, thisProperty); - allTaskInstance.put(proName,preTaskInstance); + allTaskInstance.put(proName, preTaskInstance); } } @@ -947,7 +948,7 @@ public class MasterExecThread implements Runnable { if (!sendTimeWarning && checkProcessTimeOut(processInstance)) { processAlertManager.sendProcessTimeoutAlert(processInstance, processService.findProcessDefinition(processInstance.getProcessDefinitionCode(), - processInstance.getProcessDefinitionVersion())); + processInstance.getProcessDefinitionVersion())); sendTimeWarning = true; } for (Map.Entry> entry : activeTaskNode.entrySet()) { @@ -976,7 +977,9 @@ public class MasterExecThread implements Runnable { task.getName(), task.getId(), task.getState()); // node success , post node submit if (task.getState() == ExecutionStatus.SUCCESS) { + ProcessDefinition relatedProcessDefinition = processInstance.getProcessDefinition(); processInstance = processService.findProcessInstanceById(processInstance.getId()); + processInstance.setProcessDefinition(relatedProcessDefinition); processInstance.setVarPool(task.getVarPool()); processService.updateProcessInstance(processInstance); completeTaskList.put(task.getName(), task);