This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch 2_1_X in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 75d206485b57795d9dbf08f82a5523a9b70a4ac0 Author: Francesco Chicchiriccò <[email protected]> AuthorDate: Fri Aug 21 12:02:58 2020 +0200 [SYNCOPE-1575] For suspend / reactivate, pass PropagationByResource instance from workflow execution back to ProvisioningManager --- .../flowable/impl/FlowableUserWorkflowAdapter.java | 28 ++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserWorkflowAdapter.java b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserWorkflowAdapter.java index ec1bb4d..fa8dd58 100644 --- a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserWorkflowAdapter.java +++ b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/impl/FlowableUserWorkflowAdapter.java @@ -307,11 +307,23 @@ public class FlowableUserWorkflowAdapter extends AbstractUserWorkflowAdapter imp FlowableRuntimeUtils.updateStatus(engine, procInstID, user); User updated = userDAO.save(user); + @SuppressWarnings("unchecked") + PropagationByResource<String> propByRes = engine.getRuntimeService().getVariable( + procInstID, FlowableRuntimeUtils.PROP_BY_RESOURCE, PropagationByResource.class); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_RESOURCE); + + @SuppressWarnings("unchecked") + PropagationByResource<Pair<String, String>> propByLinkedAccount = engine.getRuntimeService().getVariable( + procInstID, FlowableRuntimeUtils.PROP_BY_LINKEDACCOUNT, PropagationByResource.class); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_LINKEDACCOUNT); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.TASK); engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.USER); engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.WF_EXECUTOR); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_RESOURCE); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_LINKEDACCOUNT); - return new UserWorkflowResult<>(updated.getKey(), null, null, performedTasks); + return new UserWorkflowResult<>(updated.getKey(), propByRes, propByLinkedAccount, performedTasks); } @Override @@ -324,11 +336,23 @@ public class FlowableUserWorkflowAdapter extends AbstractUserWorkflowAdapter imp User updated = userDAO.save(user); + @SuppressWarnings("unchecked") + PropagationByResource<String> propByRes = engine.getRuntimeService().getVariable( + procInstID, FlowableRuntimeUtils.PROP_BY_RESOURCE, PropagationByResource.class); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_RESOURCE); + + @SuppressWarnings("unchecked") + PropagationByResource<Pair<String, String>> propByLinkedAccount = engine.getRuntimeService().getVariable( + procInstID, FlowableRuntimeUtils.PROP_BY_LINKEDACCOUNT, PropagationByResource.class); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_LINKEDACCOUNT); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.TASK); engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.USER); engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.WF_EXECUTOR); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_RESOURCE); + engine.getRuntimeService().removeVariable(procInstID, FlowableRuntimeUtils.PROP_BY_LINKEDACCOUNT); - return new UserWorkflowResult<>(updated.getKey(), null, null, performedTasks); + return new UserWorkflowResult<>(updated.getKey(), propByRes, propByLinkedAccount, performedTasks); } @Override
