-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
1.36.0
-
None
-
False
-
-
False
-
-
-
Important
When we have workflow that invokes REST operations from an OpenAPI document with a path that uses, the application/x-www-form-urlencoded media type:
paths: /projects/{id}/issues: post: summary: Create a new GitLab issue operationId: createIssue security: - PrivateTokenAuth: [] parameters: - name: id in: path required: true schema: type: string requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - title properties: title: type: string responses: '201': description: Created
The invocation fails with different exceptions:
First, the following exception is produced:
Caused by: java.lang.IllegalArgumentException: Unrecognized field "id" (class org.kie.kogito.openapi.gitlabopenapi.api.DefaultApi$CreateIssueMultipartForm), not marked as ignorable (one known property: "title"]) at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: org.kie.kogito.openapi.gitlabopenapi.api.DefaultApi$CreateIssueMultipartForm["id"]) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4624) at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4555) at org.kie.kogito.jackson.utils.JsonObjectUtils.convertValue(JsonObjectUtils.java:122) at org.kie.kogito.serverless.workflow.WorkflowWorkItemHandler.buildBody(WorkflowWorkItemHandler.java:85) at org.kie.kogito.app.Gitlabopenapi_createIssue.internalExecute(Gitlabopenapi_createIssue.java:9) at org.kie.kogito.app.Gitlabopenapi_createIssue.internalExecute(Gitlabopenapi_createIssue.java:5) at org.kie.kogito.serverless.workflow.openapi.OpenApiWorkItemHandler.internalExecute(OpenApiWorkItemHandler.java:55) at org.kie.kogito.serverless.workflow.WorkflowWorkItemHandler.activateWorkItemHandler(WorkflowWorkItemHandler.java:45) at org.kie.kogito.process.workitems.impl.DefaultWorkItemLifeCyclePhase.execute(DefaultWorkItemLifeCyclePhase.java:65) at org.kie.kogito.process.workitems.impl.DefaultWorkItemLifeCycle.transitionTo(DefaultWorkItemLifeCycle.java:56) at org.kie.kogito.process.workitems.impl.DefaultKogitoWorkItemHandler.transitionToPhase(DefaultKogitoWorkItemHandler.java:103) at org.kie.kogito.app.Gitlabopenapi_createIssue_ClientProxy.transitionToPhase(Unknown Source) at org.jbpm.process.instance.LightWorkItemManager.transitionWorkItem(LightWorkItemManager.java:202) at org.jbpm.process.instance.LightWorkItemManager.internalExecuteWorkItem(LightWorkItemManager.java:95) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.lambda$internalTrigger$0(WorkItemNodeInstance.java:169) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.processWorkItemHandler(WorkItemNodeInstance.java:182) ... 90 more Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "id" (class org.kie.kogito.openapi.gitlabopenapi.api.DefaultApi$CreateIssueMultipartForm), not marked as ignorable (one known property: "title"]) at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: org.kie.kogito.openapi.gitlabopenapi.api.DefaultApi$CreateIssueMultipartForm["id"]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1153) at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2241) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1793) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1771) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:316) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4619) ... 105 more
If we workaround to configure the DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES == false, then, we fall in the next issue explained in:
https://github.com/quarkiverse/quarkus-openapi-generator/issues/1249