From d3533851a02bb3293527ee8ca50e01f32f907197 Mon Sep 17 00:00:00 2001 From: wind Date: Wed, 22 Dec 2021 22:44:08 +0800 Subject: [PATCH] [Bug-7333][MasterServer] fix duplicate key task definition (#7335) Co-authored-by: caishunfeng <534328519@qq.com> --- .../service/process/ProcessService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java index e11a1089c9..c6258ff4e8 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java @@ -2419,15 +2419,19 @@ public class ProcessService { } public List getTaskDefineLogListByRelation(List processTaskRelations) { - List taskDefinitionLogs = com.google.common.collect.Lists.newArrayList(); + List taskDefinitionLogs = new ArrayList<>(); + Map taskCodeVersionMap = new HashMap<>(); for (ProcessTaskRelation processTaskRelation : processTaskRelations) { if (processTaskRelation.getPreTaskCode() > 0) { - taskDefinitionLogs.add((TaskDefinitionLog) this.findTaskDefinition(processTaskRelation.getPreTaskCode(), processTaskRelation.getPreTaskVersion())); + taskCodeVersionMap.put(processTaskRelation.getPreTaskCode(), processTaskRelation.getPreTaskVersion()); } if (processTaskRelation.getPostTaskCode() > 0) { - taskDefinitionLogs.add((TaskDefinitionLog) this.findTaskDefinition(processTaskRelation.getPostTaskCode(), processTaskRelation.getPostTaskVersion())); + taskCodeVersionMap.put(processTaskRelation.getPostTaskCode(), processTaskRelation.getPostTaskVersion()); } } + taskCodeVersionMap.forEach((code,version) -> { + taskDefinitionLogs.add((TaskDefinitionLog) this.findTaskDefinition(code, version)); + }); return taskDefinitionLogs; }