2525import io .serverlessworkflow .impl .WorkflowModel ;
2626import io .serverlessworkflow .impl .auth .AuthProvider ;
2727import io .serverlessworkflow .impl .auth .AuthUtils ;
28+ import io .serverlessworkflow .types .Errors ;
29+ import jakarta .ws .rs .ProcessingException ;
2830import jakarta .ws .rs .client .Invocation .Builder ;
2931import jakarta .ws .rs .core .Response ;
3032import 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