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

leonbao 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 d353385  [Bug-7333][MasterServer] fix duplicate key task definition 
(#7335)
d353385 is described below

commit d3533851a02bb3293527ee8ca50e01f32f907197
Author: wind <[email protected]>
AuthorDate: Wed Dec 22 22:44:08 2021 +0800

    [Bug-7333][MasterServer] fix duplicate key task definition (#7335)
    
    Co-authored-by: caishunfeng <[email protected]>
---
 .../dolphinscheduler/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 e11a108..c6258ff 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<TaskDefinitionLog> 
getTaskDefineLogListByRelation(List<ProcessTaskRelation> processTaskRelations) {
-        List<TaskDefinitionLog> taskDefinitionLogs = 
com.google.common.collect.Lists.newArrayList();
+        List<TaskDefinitionLog> taskDefinitionLogs = new ArrayList<>();
+        Map<Long, Integer> 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;
     }
 

Reply via email to