From 46f18b4d1cb8a57897344da369667dae31a7e556 Mon Sep 17 00:00:00 2001 From: fjtirado Date: Tue, 10 Feb 2026 14:40:38 +0100 Subject: [PATCH] [Fix #1141] Perform conversion for completable future Always perform conversion for the value returned. If the value returned after conversion is completable future, perform additional conversion once the value is returned. Signed-off-by: fjtirado --- .../impl/executors/func/AbstractJavaCallExecutor.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/AbstractJavaCallExecutor.java b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/AbstractJavaCallExecutor.java index 99e464d72..fe890139c 100644 --- a/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/AbstractJavaCallExecutor.java +++ b/experimental/lambda/src/main/java/io/serverlessworkflow/impl/executors/func/AbstractJavaCallExecutor.java @@ -38,10 +38,11 @@ protected AbstractJavaCallExecutor(Optional> inputClass) { @Override public CompletableFuture apply( WorkflowContext workflowContext, TaskContext taskContext, WorkflowModel input) { - Object result = callJavaFunction(workflowContext, taskContext, model2Input(input)); + Object result = + convertResponse(callJavaFunction(workflowContext, taskContext, model2Input(input))); WorkflowModelFactory modelFactory = workflowContext.definition().application().modelFactory(); return result instanceof CompletableFuture future - ? future.thenApply(v -> output2Model(modelFactory, input, v)) + ? future.thenApply(v -> output2Model(modelFactory, input, convertResponse(v))) : CompletableFuture.completedFuture(output2Model(modelFactory, input, result)); } @@ -60,6 +61,6 @@ protected Object convertResponse(Object obj) { protected WorkflowModel output2Model( WorkflowModelFactory modelFactory, WorkflowModel input, Object result) { - return modelFactory.fromAny(input, convertResponse(result)); + return modelFactory.fromAny(input, result); } }