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>