You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by we...@apache.org on 2021/04/21 01:40:34 UTC
[dolphinscheduler] branch json_split updated: fix circular
dependence bug (#5330)
This is an automated email from the ASF dual-hosted git repository.
wenhemin pushed a commit to branch json_split
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/json_split by this push:
new 37b149d fix circular dependence bug (#5330)
37b149d is described below
commit 37b149da39a3ed493948f9872c002a49351cae49
Author: Simon <zh...@cvte.com>
AuthorDate: Tue Apr 20 20:40:21 2021 -0500
fix circular dependence bug (#5330)
---
.../api/service/impl/ProcessDefinitionServiceImpl.java | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index 5f424e1..75fe58a 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -1396,7 +1396,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
Project targetProject) throws JsonProcessingException {
Map<String, Object> result = new HashMap<>();
-
+ String currentTimeStamp = DateUtils.getCurrentTimeStamp();
ProcessDefinition processDefinition = processDefinitionMapper.selectById(processId);
if (processDefinition == null) {
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processId);
@@ -1407,21 +1407,27 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
String locations = processDefinition.getLocations();
ObjectNode locationsJN = JSONUtils.parseObject(locations);
- taskNodeList.forEach(taskNode -> {
- String suffix = "_copy_" + DateUtils.getCurrentTimeStamp();
+ for (TaskNode taskNode : taskNodeList) {
+ String suffix = "_copy_" + currentTimeStamp;
String id = taskNode.getId();
String newName = locationsJN.path(id).path("name").asText() + suffix;
((ObjectNode) locationsJN.get(id)).put("name", newName);
+ List<String> depList = taskNode.getDepList();
+ List<String> newDepList = depList.stream()
+ .map(s -> s + suffix)
+ .collect(Collectors.toList());
+
+ taskNode.setDepList(newDepList);
taskNode.setName(taskNode.getName() + suffix);
taskNode.setCode(0L);
- });
+ }
processData.setTasks(taskNodeList);
String processDefinitionJson = JSONUtils.toJsonString(processData);
return createProcessDefinition(
loginUser,
targetProject.getName(),
- processDefinition.getName() + "_copy_" + DateUtils.getCurrentTimeStamp(),
+ processDefinition.getName() + "_copy_" + currentTimeStamp,
processDefinitionJson,
processDefinition.getDescription(),
locationsJN.toString(),