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 2022/12/02 20:03:08 UTC

[brooklyn-server] 15/18: support inline single-step error on steps

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 27a26ec059d342c8d11146bf6e6822a95301bd09
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Fri Dec 2 14:10:43 2022 +0000

    support inline single-step error on steps
---
 .../java/org/apache/brooklyn/core/workflow/WorkflowErrorHandling.java | 2 +-
 .../org/apache/brooklyn/core/workflow/WorkflowStepDefinition.java     | 4 ++--
 .../org/apache/brooklyn/core/workflow/WorkflowStepResolution.java     | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowErrorHandling.java b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowErrorHandling.java
index 2be4ae7f2b..2961e2353e 100644
--- a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowErrorHandling.java
+++ b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowErrorHandling.java
@@ -214,7 +214,7 @@ public class WorkflowErrorHandling implements Callable<WorkflowErrorHandling.Wor
 
     public static void handleErrorAtStep(Entity entity, WorkflowStepDefinition step, WorkflowStepInstanceExecutionContext currentStepInstance, Task<?> stepTaskThrowingError, BiConsumer<Object, Object> onFinish, Exception error, Integer errorStepIfNested) {
         String problemHere = null;
-        if (!step.onError.isEmpty()) {
+        if (wrappedInListIfNecessaryOrNullIfEmpty(step.onError)!=null) {
 
             if (errorStepIfNested!=null) {
                 log.debug("Nested error handler running on "+stepTaskThrowingError+" to handle "+error);
diff --git a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepDefinition.java b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepDefinition.java
index 84769c870b..e133dea6b8 100644
--- a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepDefinition.java
+++ b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepDefinition.java
@@ -111,9 +111,9 @@ public abstract class WorkflowStepDefinition {
 
     // might be nice to support a shorthand for on-error; but not yet
     @JsonProperty("on-error")
-    protected List<Object> onError = MutableList.of();
+    protected Object onError = MutableList.of();
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
-    public List<Object> getOnError() {
+    public Object getOnError() {
         return onError;
     }
 
diff --git a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepResolution.java b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepResolution.java
index a59fa889b4..82684c5de6 100644
--- a/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepResolution.java
+++ b/core/src/main/java/org/apache/brooklyn/core/workflow/WorkflowStepResolution.java
@@ -132,9 +132,9 @@ public class WorkflowStepResolution {
                 defW.populateFromShorthand(shorthand);
             }
 
-            List<Object> onError = defW.getOnError();
+            List<Object> onError = WorkflowErrorHandling.wrappedInListIfNecessaryOrNullIfEmpty(defW.getOnError());
             if (onError!=null && !onError.isEmpty()) {
-                defW.onError = (List) resolveSubSteps(mgmt, "error handling", onError);
+                defW.onError = resolveSubSteps(mgmt, "error handling", onError);
             }
 
             defW.validateStep(mgmt, null);