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

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


The following commit(s) were added to refs/heads/master by this push:
     new 506c0cd6e5 Flowable: managing duplicated tasks
506c0cd6e5 is described below

commit 506c0cd6e58a7b2df5d9c0453be9b0a920eddb5e
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                                            |  4 +--
 3 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/.github/workflows/crosschecks.yml 
b/.github/workflows/crosschecks.yml
index b5c9dbd7f9..16fa4b576a 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 81f2087f1a..49623e871a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -466,7 +466,7 @@ under the License.
     <wicket-jqueryui.version>10.0.0-M1</wicket-jqueryui.version>
     <wicket-bootstrap.version>7.0.11</wicket-bootstrap.version>
     <wicket-jquery-selectors.version>4.0.4</wicket-jquery-selectors.version>
-    <wicket-spring-boot.version>4.0.0</wicket-spring-boot.version>
+    <wicket-spring-boot.version>4.1.1</wicket-spring-boot.version>
 
     <antlr4.version>4.13.2</antlr4.version>
 
@@ -504,7 +504,7 @@ under the License.
     <cargo.deployable.ping.timeout>60000</cargo.deployable.ping.timeout>
 
     <tomcat.version>11.0.10</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