diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java index 6bf1eadb2b..e8c129126d 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java @@ -11,8 +11,10 @@ import org.slf4j.Logger; import io.fabric8.kubernetes.api.model.HasMetadata; +import io.javaoperatorsdk.operator.OperatorException; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource; +import io.javaoperatorsdk.operator.processing.event.ResourceID; @SuppressWarnings("rawtypes") public abstract class AbstractWorkflowExecutor

{ @@ -46,8 +48,14 @@ protected synchronized void waitForScheduledExecutionsToRun() { logger().warn("Notified but still resources under execution. This should not happen."); } } catch (InterruptedException e) { - logger().warn("Thread interrupted", e); - Thread.currentThread().interrupt(); + if (noMoreExecutionsScheduled()) { + logger().debug("interrupted, no more executions for: {}", + ResourceID.fromResource(primary)); + return; + } else { + logger().error("Thread interrupted for primary: {}", ResourceID.fromResource(primary), e); + throw new OperatorException(e); + } } } }