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

Reply via email to