From 5ba4ce5457837d38b76d77a72a9470d3ef0f4e0e Mon Sep 17 00:00:00 2001 From: Echo009 Date: Mon, 31 Oct 2022 14:01:12 +0800 Subject: [PATCH] fix: issue with nested workflow node state updates,#465 --- .../server/core/workflow/WorkflowInstanceManager.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/workflow/WorkflowInstanceManager.java b/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/workflow/WorkflowInstanceManager.java index 520e0780..68535a32 100644 --- a/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/workflow/WorkflowInstanceManager.java +++ b/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/workflow/WorkflowInstanceManager.java @@ -19,6 +19,7 @@ import tech.powerjob.common.model.PEWorkflowDAG; import tech.powerjob.common.serialize.JsonUtils; import tech.powerjob.common.utils.CommonUtils; import tech.powerjob.server.common.constants.SwitchableStatus; +import tech.powerjob.server.common.utils.SpringUtils; import tech.powerjob.server.core.helper.StatusMappingHelper; import tech.powerjob.server.core.lock.UseCacheLock; import tech.powerjob.server.core.service.UserService; @@ -440,10 +441,10 @@ public class WorkflowInstanceManager { if (workflowInstanceStatus == WorkflowInstanceStatus.SUCCEED){ HashMap wfContext = JSON.parseObject(wfInstance.getWfContext(), new TypeReference>() { }); - updateWorkflowContext(wfInstance.getParentWfInstanceId(),wfContext); + SpringUtils.getBean(this.getClass()).updateWorkflowContext(wfInstance.getParentWfInstanceId(), wfContext); } - // 处理父工作流 - move(wfInstance.getParentWfInstanceId(), wfInstance.getWfInstanceId(), StatusMappingHelper.toInstanceStatus(workflowInstanceStatus), result); + // 处理父工作流, fix https://github.com/PowerJob/PowerJob/issues/465 + SpringUtils.getBean(this.getClass()).move(wfInstance.getParentWfInstanceId(), wfInstance.getWfInstanceId(), StatusMappingHelper.toInstanceStatus(workflowInstanceStatus), result); } // 报警