You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2023/05/24 10:50:17 UTC

[brooklyn-server] 04/08: more thorough cancellation of DST jobs

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

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 7844795e2fbd680331e21f8c7a231f975168d656
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Wed May 24 00:23:03 2023 +0100

    more thorough cancellation of DST jobs
---
 .../java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java b/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
index 7d10b3124c..ed76e7b12c 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Queue;
 import java.util.concurrent.Callable;
+import java.util.concurrent.CancellationException;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 import org.apache.brooklyn.api.mgmt.HasTaskChildren;
@@ -297,6 +298,7 @@ public class DynamicSequentialTask<T> extends BasicTask<T> implements HasTaskChi
                     List<Object> result = new ArrayList<Object>();
                     try { 
                         while (!secondaryQueueAborted && (!primaryFinished || !secondaryJobsRemaining.isEmpty())) {
+                            if (isCancelled()) throw new CancellationException();
                             synchronized (jobTransitionLock) {
                                 if (!primaryFinished && secondaryJobsRemaining.isEmpty()) {
                                     currentSecondary = null;
@@ -306,6 +308,7 @@ public class DynamicSequentialTask<T> extends BasicTask<T> implements HasTaskChi
                             @SuppressWarnings("rawtypes")
                             Task secondaryJob = secondaryJobsRemaining.poll();
                             if (secondaryJob != null) {
+                                if (isCancelled()) throw new CancellationException();
                                 synchronized (jobTransitionLock) {
                                     currentSecondary = secondaryJob;
                                     submitBackgroundInheritingContext(secondaryJob);