diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java index 5734333626..05c789303b 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java @@ -2551,8 +2551,11 @@ public class ProcessServiceImpl implements ProcessService { // and update the origin one if exist int updateResult = 0; int insertResult = 0; - if (CollectionUtils.isNotEmpty(newTaskDefinitionLogs)) { - insertResult += taskDefinitionLogMapper.batchInsert(newTaskDefinitionLogs); + List newInsertTaskDefinitionLogs = newTaskDefinitionLogs.stream() + .filter(taskDefinitionLog -> !updateTaskDefinitionLogs.contains(taskDefinitionLog)) + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newInsertTaskDefinitionLogs)) { + insertResult += taskDefinitionLogMapper.batchInsert(newInsertTaskDefinitionLogs); } if (CollectionUtils.isNotEmpty(updateTaskDefinitionLogs)) { insertResult += taskDefinitionLogMapper.batchInsert(updateTaskDefinitionLogs);