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

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 190391bf21cf7316fb27526bd345a2c093a71131
Author: Tung Tran <[email protected]>
AuthorDate: Tue Aug 1 19:39:41 2023 +0700

    JAMES-3825 Cancel tasks upon graceful shutdown - continue to dispose even 
the cancelled listener was not completed
---
 .../java/org/apache/james/task/SerialTaskManagerWorker.java | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/server/task/task-memory/src/main/java/org/apache/james/task/SerialTaskManagerWorker.java
 
b/server/task/task-memory/src/main/java/org/apache/james/task/SerialTaskManagerWorker.java
index 4b3f8c5e33..6144bd7e88 100644
--- 
a/server/task/task-memory/src/main/java/org/apache/james/task/SerialTaskManagerWorker.java
+++ 
b/server/task/task-memory/src/main/java/org/apache/james/task/SerialTaskManagerWorker.java
@@ -37,6 +37,7 @@ import org.apache.james.util.MDCStructuredLogger;
 import org.apache.james.util.ReactorUtils;
 import org.apache.james.util.concurrent.NamedThreadFactory;
 import org.awaitility.Awaitility;
+import org.awaitility.core.ConditionTimeoutException;
 import org.reactivestreams.Publisher;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -206,10 +207,14 @@ public class SerialTaskManagerWorker implements 
TaskManagerWorker {
             .collect(Collectors.toUnmodifiableSet());
         if (!taskIds.isEmpty()) {
             taskIds.forEach(this::cancelTask);
-            Awaitility
-                .waitAtMost(TWO_MINUTES)
-                .pollDelay(Duration.ofMillis(500))
-                .until(() -> !cancelledTasks.containsAll(taskIds));
+            try {
+                Awaitility
+                    .waitAtMost(TWO_MINUTES)
+                    .pollDelay(Duration.ofMillis(500))
+                    .until(() -> !cancelledTasks.containsAll(taskIds));
+            } catch (ConditionTimeoutException e) {
+                LOGGER.warn("Some tasks were not cancelled before worker 
close: {}", taskIds);
+            }
         }
         taskExecutor.dispose();
         asyncTaskExecutor.dispose();


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

Reply via email to