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

fjtiradosarti pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git


The following commit(s) were added to refs/heads/main by this push:
     new 0963e52085 [incubator-kie-issues#1815] Data Index doesn't index any 
event form runtime when transitioning UserTasks (#3844)
0963e52085 is described below

commit 0963e52085b0017f7c3ac14a6f7044b0158b3c86
Author: Deepak Joseph <[email protected]>
AuthorDate: Thu Feb 13 23:41:35 2025 +0530

    [incubator-kie-issues#1815] Data Index doesn't index any event form runtime 
when transitioning UserTasks (#3844)
    
    * user task fix
    
    * added newline
---
 .../kie/kogito/usertask/lifecycle/UserTaskLifeCycle.java |  5 +++++
 .../kogito/usertask/impl/DefaultUserTaskInstance.java    | 10 ++++------
 .../kie/kogito/usertask/impl/UserTaskServiceImpl.java    | 16 +++++++++-------
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git 
a/api/kogito-api/src/main/java/org/kie/kogito/usertask/lifecycle/UserTaskLifeCycle.java
 
b/api/kogito-api/src/main/java/org/kie/kogito/usertask/lifecycle/UserTaskLifeCycle.java
index 43b8b66950..9fbe1cdcc2 100644
--- 
a/api/kogito-api/src/main/java/org/kie/kogito/usertask/lifecycle/UserTaskLifeCycle.java
+++ 
b/api/kogito-api/src/main/java/org/kie/kogito/usertask/lifecycle/UserTaskLifeCycle.java
@@ -29,11 +29,16 @@ import org.kie.kogito.usertask.UserTaskInstance;
 public interface UserTaskLifeCycle {
 
     final String ACTIVATE = "activate";
+    final String REASSIGN = "reassign";
 
     default String startTransition() {
         return ACTIVATE;
     }
 
+    default String reassignTransition() {
+        return REASSIGN;
+    }
+
     Optional<UserTaskTransitionToken> transition(UserTaskInstance 
userTaskInstance, UserTaskTransitionToken transition, IdentityProvider 
identity);
 
     UserTaskTransitionToken newTransitionToken(String transitionId, 
UserTaskInstance userTaskInstance, Map<String, Object> data);
diff --git 
a/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
 
b/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
index 287b7b4fe8..bf60df7187 100644
--- 
a/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
+++ 
b/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/DefaultUserTaskInstance.java
@@ -735,14 +735,14 @@ public class DefaultUserTaskInstance implements 
UserTaskInstance {
 
     public void trigger(UserTaskInstanceJobDescription jobDescription) {
         LOG.trace("trigger timer in user tasks {} and job {}", this, 
jobDescription);
-        checkAndSendNotitication(jobDescription, notStartedDeadlinesTimers, 
this::startNotification);
-        checkAndSendNotitication(jobDescription, notCompletedDeadlinesTimers, 
this::endNotification);
+        checkAndSendNotification(jobDescription, notStartedDeadlinesTimers, 
this::startNotification);
+        checkAndSendNotification(jobDescription, notCompletedDeadlinesTimers, 
this::endNotification);
         checkAndReassign(jobDescription, notStartedReassignmentsTimers);
         checkAndReassign(jobDescription, notCompletedReassignmentsTimers);
         this.updatePersistence();
     }
 
-    private void checkAndSendNotitication(UserTaskInstanceJobDescription 
timerInstance, Map<String, Notification> timers, Consumer<Notification> 
publisher) {
+    private void checkAndSendNotification(UserTaskInstanceJobDescription 
timerInstance, Map<String, Notification> timers, Consumer<Notification> 
publisher) {
         Notification notification = timers.get(timerInstance.id());
         if (notification == null) {
             return;
@@ -784,9 +784,7 @@ public class DefaultUserTaskInstance implements 
UserTaskInstance {
             setPotentialGroups(reassignment.getPotentialGroups());
         }
 
-        this.userTaskLifeCycle.newReassignmentTransitionToken(this, 
emptyMap()).ifPresent(token -> {
-            this.userTaskLifeCycle.transition(this, token, 
IdentityProviders.of(WORKFLOW_ENGINE_USER));
-        });
+        this.transition(this.userTaskLifeCycle.reassignTransition(), 
emptyMap(), IdentityProviders.of(WORKFLOW_ENGINE_USER));
     }
 
     @Override
diff --git 
a/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/UserTaskServiceImpl.java
 
b/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/UserTaskServiceImpl.java
index a2da034e93..3f1009245e 100644
--- 
a/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/UserTaskServiceImpl.java
+++ 
b/jbpm/jbpm-usertask/src/main/java/org/kie/kogito/usertask/impl/UserTaskServiceImpl.java
@@ -79,13 +79,15 @@ public class UserTaskServiceImpl implements UserTaskService 
{
 
     @Override
     public Optional<UserTaskView> transition(String taskId, String 
transitionId, Map<String, Object> data, IdentityProvider identity) {
-        Optional<UserTaskInstance> userTaskInstance = 
application.get(UserTasks.class).instances().findById(taskId);
-        if (userTaskInstance.isEmpty()) {
-            return Optional.empty();
-        }
-        UserTaskInstance ut = userTaskInstance.get();
-        ut.transition(transitionId, data, identity);
-        return Optional.of(toUserTaskView(ut));
+        return 
UnitOfWorkExecutor.executeInUnitOfWork(application.unitOfWorkManager(), () -> {
+            Optional<UserTaskInstance> userTaskInstance = 
application.get(UserTasks.class).instances().findById(taskId);
+            if (userTaskInstance.isEmpty()) {
+                return Optional.empty();
+            }
+            UserTaskInstance ut = userTaskInstance.get();
+            ut.transition(transitionId, data, identity);
+            return Optional.of(toUserTaskView(ut));
+        });
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to