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 6629ed8f62..447f89ab30 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 @@ -111,8 +111,9 @@ protected void markAsExecuting( actualExecutions.put(dependentResourceNode, future); } + // Exception is required because of Kotlin protected synchronized void handleExceptionInExecutor( - DependentResourceNode dependentResourceNode, RuntimeException e) { + DependentResourceNode dependentResourceNode, Exception e) { createOrGetResultFor(dependentResourceNode).withError(e); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/NodeExecutor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/NodeExecutor.java index 740d10710d..4efadff05f 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/NodeExecutor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/NodeExecutor.java @@ -19,7 +19,8 @@ public void run() { try { doRun(dependentResourceNode); - } catch (RuntimeException e) { + } catch (Exception e) { + // Exception is required because of Kotlin workflowExecutor.handleExceptionInExecutor(dependentResourceNode, e); } finally { workflowExecutor.handleNodeExecutionFinish(dependentResourceNode); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java index b7e9740552..fe7c9ce391 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java @@ -73,7 +73,8 @@ public void run() { } getStateAndFillCache(); healthy.set(true); - } catch (RuntimeException e) { + } catch (Exception e) { + // Exception is required because of Kotlin healthy.set(false); log.error("Error during polling.", e); }