From cf19ff000b43b2e35892fbe0fac3c95cad652384 Mon Sep 17 00:00:00 2001 From: EdwardYang Date: Fri, 11 Feb 2022 20:22:33 +0800 Subject: [PATCH] [Bug][API] fix ProcessDefinition update error #8334 (#8338) (#8354) * [bug] fix task definition delete * [bug] fix ProcessDefinition update error #8334 * [bug] fix ProcessDefinition update error #8334 Co-authored-by: edward-yang Co-authored-by: edward-yang --- .../service/impl/ProcessDefinitionServiceImpl.java | 12 +++++++----- 1 file changed, 7 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 a88e5eb18e..58c8ab428f 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 @@ -581,13 +581,15 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro if (processDefinition.equals(processDefinitionDeepCopy) && saveTaskResult == Constants.EXIT_CODE_SUCCESS) { List processTaskRelationLogList = processTaskRelationLogMapper.queryByProcessCodeAndVersion(processDefinition.getCode(), processDefinition.getVersion()); if (taskRelationList.size() == processTaskRelationLogList.size()) { - Map taskRelationLogMap = - taskRelationList.stream().collect(Collectors.toMap(ProcessTaskRelationLog::getPostTaskCode, processTaskRelationLog -> processTaskRelationLog)); - for (ProcessTaskRelationLog processTaskRelationLog : taskRelationList) { - if (!processTaskRelationLog.equals(taskRelationLogMap.get(processTaskRelationLog.getPostTaskCode()))) { + Set taskRelationSet = taskRelationList.stream().collect(Collectors.toSet()); + Set processTaskRelationLogSet = processTaskRelationLogList.stream().collect(Collectors.toSet()); + if (taskRelationSet.size() == processTaskRelationLogSet.size()) { + taskRelationSet.removeAll(processTaskRelationLogSet); + if (!taskRelationSet.isEmpty()) { isChange = true; - break; } + } else { + isChange = true; } } else { isChange = true;