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]
