Uploaded image for project: 'Serverless logic'
  1. Serverless logic
  2. SRVLOGIC-627

Workflows can not invoke REST paths with the application/x-www-form-urlencoded type

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 1.36.0
    • Runtimes
    • None
    • False
    • Hide

      None

      Show
      None
    • 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

       

       

              ftirados Francisco Javier Tirado Sarti
              wmedvede@redhat.com Walter Medvedeo
              Gonzalo Muñoz Fernández Gonzalo Muñoz Fernández
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: