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 6aab0f1f39..c546570e34 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 @@ -44,17 +44,20 @@ public AbstractWorkflowExecutor(Workflow
workflow, P primary, Context
cont protected abstract Logger logger(); protected synchronized void waitForScheduledExecutionsToRun() { + // in case when workflow just contains non-activated dependents, + // it needs to be checked first if there are already no executions + // scheduled at the beginning. + if (noMoreExecutionsScheduled()) { + return; + } while (true) { try { - // in case when workflow just contains non-activated dependents, - // it needs to be checked first if there are already no executions - // scheduled at the beginning. + this.wait(); if (noMoreExecutionsScheduled()) { break; } else { logger().warn("Notified but still resources under execution. This should not happen."); } - this.wait(); } catch (InterruptedException e) { if (noMoreExecutionsScheduled()) { logger().debug("interrupted, no more executions for: {}", primaryID); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java index 1d0c091e16..eb354bf96d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java @@ -25,6 +25,7 @@ class DependentOperationEventFilterIT { @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withNamespaceDeleteTimeout(2) .withReconciler(new DependentOperationEventFilterCustomResourceTestReconciler()) .build();