This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 4_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/4_0_X by this push:
     new 215ba02ca4 Flowable: managing duplicated tasks
215ba02ca4 is described below

commit 215ba02ca42bdc6182bff5bdcbe4c32af37fa3c1
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Fri Sep 5 09:12:46 2025 +0200

    Flowable: managing duplicated tasks
---
 .github/workflows/crosschecks.yml                  |  4 +--
 .../flowable/impl/FlowableUserWorkflowAdapter.java | 29 +++++++++++-----------
 pom.xml                                            |  2 +-
 3 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/crosschecks.yml 
b/.github/workflows/crosschecks.yml
index 9f56d89b0f..b1f694388f 100644
--- a/.github/workflows/crosschecks.yml
+++ b/.github/workflows/crosschecks.yml
@@ -56,7 +56,7 @@ jobs:
     - name: Start PostgreSQL on Windows
       if: runner.os == 'Windows'
       run: |
-        sc.exe config postgresql-x64-14 start=auto
-        sc.exe start postgresql-x64-14
+        sc.exe config postgresql-x64-17 start=auto
+        sc.exe start postgresql-x64-17
     - name: Verify
       run: mvn -f fit/core-reference/pom.xml verify '-Dit.test=RESTITCase' 
'-Dinvoker.streamLogs=true' '-Dmodernizer.skip=true' '-Drat.skip=true' 
'-Dcheckstyle.skip=true' '-Djacoco.skip=true'
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 eee1c2cabe..a807e50d32 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
@@ -215,25 +215,26 @@ public class FlowableUserWorkflowAdapter extends 
AbstractUserWorkflowAdapter imp
         }
 
         List<Task> tasks = 
engine.getTaskService().createTaskQuery().processInstanceId(procInstID).list();
-        String task = null;
-        if (tasks.size() == 1) {
-            try {
-                engine.getTaskService().complete(tasks.getFirst().getId(), 
variables);
-                task = tasks.getFirst().getTaskDefinitionKey();
-            } catch (FlowableException e) {
-                FlowableRuntimeUtils.throwException(
-                        e, "While completing task '" + 
tasks.getFirst().getName() + "' for " + user);
+        if (tasks.isEmpty()) {
+            LOG.warn("No tasks found for process instance id {}", procInstID);
+            return Set.of();
+        }
+
+        Task task = tasks.removeFirst();
+        try {
+            engine.getTaskService().complete(task.getId(), variables);
+
+            if (!tasks.isEmpty()) {
+                
engine.getTaskService().deleteTasks(tasks.stream().map(Task::getId).toList());
             }
-        } else {
-            LOG.warn("Expected a single task, found {}", tasks.size());
+        } catch (FlowableException e) {
+            FlowableRuntimeUtils.throwException(
+                    e, "While completing task '" + task.getName() + "' for " + 
user);
         }
 
         Set<String> postTasks = FlowableRuntimeUtils.getPerformedTasks(engine, 
procInstID);
         postTasks.removeAll(preTasks);
-        if (task != null) {
-            postTasks.add(task);
-        }
-
+        postTasks.add(task.getTaskDefinitionKey());
         return postTasks;
     }
 
diff --git a/pom.xml b/pom.xml
index c9b513ff7c..9d376a4b6d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -506,7 +506,7 @@ under the License.
     <cargo.deployable.ping.timeout>60000</cargo.deployable.ping.timeout>
 
     <tomcat.version>10.1.44</tomcat.version>
-    <wildfly.version>37.0.0.Final</wildfly.version>
+    <wildfly.version>37.0.1.Final</wildfly.version>
     <payara.version>6.2025.9</payara.version>
     <jakarta.faces.version>4.1.3</jakarta.faces.version>
 

Reply via email to