Skip to content

Commit 2124d00

Browse files
authored
[Fix #1242] Raising workflow error in case there is a conversion issue (#1243)
Signed-off-by: fjtirado <ftirados@redhat.com>
1 parent 8a44d11 commit 2124d00

1 file changed

Lines changed: 17 additions & 7 deletions

File tree

impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/AbstractRequestExecutor.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import io.serverlessworkflow.impl.WorkflowModel;
2626
import io.serverlessworkflow.impl.auth.AuthProvider;
2727
import io.serverlessworkflow.impl.auth.AuthUtils;
28+
import io.serverlessworkflow.types.Errors;
29+
import jakarta.ws.rs.ProcessingException;
2830
import jakarta.ws.rs.client.Invocation.Builder;
2931
import jakarta.ws.rs.core.Response;
3032
import jakarta.ws.rs.core.Response.Status.Family;
@@ -48,13 +50,21 @@ public WorkflowModel apply(
4850
Builder request, URI uri, WorkflowContext workflow, TaskContext task, WorkflowModel model) {
4951
HttpModelConverter converter = HttpConverterResolver.converter(workflow, task);
5052
authProvider.ifPresent(auth -> addAuthHeader(auth, uri, request, workflow, task, model));
51-
Response response = invokeRequest(request, converter, workflow, task, model);
52-
validateStatus(task, response, converter);
53-
return workflow
54-
.definition()
55-
.application()
56-
.modelFactory()
57-
.fromAny(response.readEntity(converter.responseType()));
53+
try (Response response = invokeRequest(request, converter, workflow, task, model)) {
54+
validateStatus(task, response, converter);
55+
return workflow
56+
.definition()
57+
.application()
58+
.modelFactory()
59+
.fromAny(response.readEntity(converter.responseType()));
60+
} catch (ProcessingException | IllegalStateException ex) {
61+
throw new WorkflowException(
62+
WorkflowError.error(Errors.DATA.toString(), Errors.DATA.status())
63+
.details(ex.getMessage())
64+
.instance(task.position().jsonPointer())
65+
.build(),
66+
ex);
67+
}
5868
}
5969

6070
private void validateStatus(TaskContext task, Response response, HttpModelConverter converter) {

0 commit comments

Comments
 (0)