This is an automated email from the ASF dual-hosted git repository.
fjtiradosarti pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new 33cd4a4740 [Fix #4121] Handling raw response (#4122)
33cd4a4740 is described below
commit 33cd4a4740271651fecaee41773f0c740a235050
Author: Francisco Javier Tirado Sarti
<[email protected]>
AuthorDate: Fri Nov 7 18:03:21 2025 +0100
[Fix #4121] Handling raw response (#4122)
* [Fix #4121] Handling raw response
If the openapi generated method return response, we convert the embedded
java object to json.
Signed-off-by: fjtirado <[email protected]>
* [Fix #4121] Failing test
Signed-off-by: fjtirado <[email protected]>
---------
Signed-off-by: fjtirado <[email protected]>
---
.../workflow/openapi/WorkflowOpenApiHandlerGenerator.java | 3 +--
.../workflow/openapi/OpenApiWorkItemHandler.java | 15 ++++++++++++---
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git
a/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
b/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
index d24547e714..12c252294c 100644
---
a/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
+++
b/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
@@ -54,7 +54,6 @@ import
io.quarkiverse.openapi.generator.annotations.GeneratedMethod;
import io.quarkiverse.openapi.generator.annotations.GeneratedParam;
import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.ws.rs.core.Response;
import static com.github.javaparser.StaticJavaParser.parseClassOrInterfaceType;
import static
org.kie.kogito.serverless.workflow.utils.ServerlessWorkflowUtils.getValidIdentifier;
@@ -95,7 +94,7 @@ public class WorkflowOpenApiHandlerGenerator extends
ClassAnnotatedWorkflowHandl
BlockStmt body = executeMethod.createBody();
MethodCallExpr methodCallExpr = new MethodCallExpr(new
NameExpr(OPEN_API_REF), m.name());
final NameExpr parameters = new NameExpr(WORK_ITEM_PARAMETERS);
- if
(m.returnType().name().equals(DotName.createSimple(Response.class.getName()))
|| (m.returnType() instanceof VoidType)) {
+ if (m.returnType() instanceof VoidType) {
body.addStatement(methodCallExpr).addStatement(new ReturnStmt(new
NullLiteralExpr()));
} else {
body.addStatement(new ReturnStmt(methodCallExpr));
diff --git
a/quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
b/quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
index daa6dbe298..a927ed3b5f 100644
---
a/quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
+++
b/quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
@@ -80,24 +80,33 @@ public abstract class OpenApiWorkItemHandler<T> extends
WorkflowWorkItemHandler
}
}, Integer.MIN_VALUE).register((ResponseExceptionMapper) response ->
new WebApplicationException(fromResponse(response),
response.getStatus())).build(clazz);
try {
- return internalExecute(ref, parameters);
+ Object result = internalExecute(ref, parameters);
+ if (result instanceof Response response) {
+ result = objectFromResponse(response);
+ }
+ return result;
} catch (WebApplicationException ex) {
throw new
WorkItemExecutionException(Integer.toString(ex.getResponse().getStatus()),
ex.getMessage());
}
}
- private String fromResponse(Response response) {
+ private Object objectFromResponse(Response response) {
Object entity = response.getEntity();
if (entity instanceof ByteArrayInputStream input) {
if
(MediaType.APPLICATION_JSON_TYPE.equals(response.getMediaType())) {
try {
- return
ObjectMapperFactory.get().readTree(input).toString();
+ return ObjectMapperFactory.get().readTree(input);
} catch (IOException e) {
logger.warn("Error parsing json error response {}",
e.toString());
}
}
return new String(input.readAllBytes());
}
+ return entity != null ? entity.toString() : null;
+ }
+
+ private String fromResponse(Response response) {
+ Object entity = objectFromResponse(response);
return entity != null ? entity.toString() :
response.getStatusInfo().getReasonPhrase();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]