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;
}