This is an automated email from the ASF dual-hosted git repository.
jinyleechina pushed a commit to branch 2.0.4-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/2.0.4-prepare by this push:
new cf19ff0 [Bug][API] fix ProcessDefinition update error #8334 (#8338)
(#8354)
cf19ff0 is described below
commit cf19ff000b43b2e35892fbe0fac3c95cad652384
Author: EdwardYang <[email protected]>
AuthorDate: Fri Feb 11 20:22:33 2022 +0800
[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 <[email protected]>
Co-authored-by: edward-yang <[email protected]>
---
.../api/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 a88e5eb..58c8ab4 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<ProcessTaskRelationLog> processTaskRelationLogList =
processTaskRelationLogMapper.queryByProcessCodeAndVersion(processDefinition.getCode(),
processDefinition.getVersion());
if (taskRelationList.size() == processTaskRelationLogList.size()) {
- Map<Long, ProcessTaskRelationLog> taskRelationLogMap =
-
taskRelationList.stream().collect(Collectors.toMap(ProcessTaskRelationLog::getPostTaskCode,
processTaskRelationLog -> processTaskRelationLog));
- for (ProcessTaskRelationLog processTaskRelationLog :
taskRelationList) {
- if
(!processTaskRelationLog.equals(taskRelationLogMap.get(processTaskRelationLog.getPostTaskCode())))
{
+ Set<ProcessTaskRelationLog> taskRelationSet =
taskRelationList.stream().collect(Collectors.toSet());
+ Set<ProcessTaskRelationLog> 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;