Uploaded image for project: 'Kogito'
  1. Kogito
  2. KOGITO-6345

Serverless Workflow compensation with Operation State is not working

    XMLWordPrintable

Details

    Description

      Operation State with usedForCompensatio=true is throwing erros during the build.

      https://github.com/serverlessworkflow/specification/blob/0.6.x/specification.md#operation-state 

       {
            "name": "compensatingStock",
            "usedForCompensation": true,
            "type": "operation",
            "actions": [
              {
                "name": "cancelStockAction",
                "functionRef": {
                  "refName": "cancelStock",
                  "arguments": {
                    "orderId": "$.orderId"
                  }
                }
              }]
          }

       

      Caused by: org.kie.kogito.codegen.process.ProcessCodegenException: Error while elaborating file "/home/tiagodolphine/dev/redhat/fork/kogito-examples/serverless-workflow-saga-quarkus/src/main/resources/error.sw.json": Unknown node id: 12
          at org.kie.kogito.codegen.process.ProcessCodegen.parseWorkflowFile(ProcessCodegen.java:255)
          at org.kie.kogito.codegen.process.ProcessCodegen.lambda$ofCollectedResources$1(ProcessCodegen.java:143)
          at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
          at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
          at java.base/java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet.lambda$entryConsumer$0(Collections.java:1576)
          at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1746)
          at java.base/java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator.forEachRemaining(Collections.java:1601)
          at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
          at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
          at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
          at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
          at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
          at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
          at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274)
          at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
          at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
          at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
          at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
          at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
          at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
          at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
          at org.kie.kogito.codegen.process.ProcessCodegen.ofCollectedResources(ProcessCodegen.java:148)
          at org.kie.kogito.codegen.process.ProcessCodegenFactory.create(ProcessCodegenFactory.java:29)
          at org.kie.codegen.core.utils.ApplicationGeneratorDiscovery.lambda$loadGenerators$0(ApplicationGeneratorDiscovery.java:60)
          at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
          at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
          at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
          at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
          at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
          at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
          at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
          at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
          at org.kie.kogito.codegen.core.utils.ApplicationGeneratorDiscovery.loadGenerators(ApplicationGeneratorDiscovery.java:62)
          at org.kie.kogito.codegen.core.utils.ApplicationGeneratorDiscovery.discover(ApplicationGeneratorDiscovery.java:48)
          at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateFiles(KogitoAssetsProcessor.java:132)
          at org.kie.kogito.quarkus.common.deployment.KogitoAssetsProcessor.generateModel(KogitoAssetsProcessor.java:82)
          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.base/java.lang.reflect.Method.invoke(Method.java:566)
          at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:821)
          at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
          at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
          at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
          at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
          at java.base/java.lang.Thread.run(Thread.java:834)
          at org.jboss.threads.JBossThread.run(JBossThread.java:501)
      Caused by: java.lang.IllegalArgumentException: Unknown node id: 12
          at org.jbpm.workflow.core.impl.NodeContainerImpl.getNode(NodeContainerImpl.java:65)
          at org.jbpm.workflow.core.node.CompositeNode.getNode(CompositeNode.java:46)
          at org.jbpm.ruleflow.core.RuleFlowNodeContainerFactory.getConnection(RuleFlowNodeContainerFactory.java:168)
          at org.jbpm.ruleflow.core.RuleFlowNodeContainerFactory.connection(RuleFlowNodeContainerFactory.java:155)
          at org.jbpm.ruleflow.core.RuleFlowNodeContainerFactory.connection(RuleFlowNodeContainerFactory.java:151)
          at org.kie.kogito.serverless.workflow.parser.handlers.StateHandler.handleConnections(StateHandler.java:157)
          at org.kie.kogito.serverless.workflow.parser.handlers.StateHandler.handleCompensation(StateHandler.java:129)
          at org.kie.kogito.serverless.workflow.parser.handlers.StateHandler.handleCompensation(StateHandler.java:113)
          at org.kie.kogito.serverless.workflow.parser.handlers.StateHandler.handleState(StateHandler.java:142)
          at org.kie.kogito.serverless.workflow.parser.handlers.StateHandler.handleState(StateHandler.java:134)
          at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
          at org.kie.kogito.serverless.workflow.parser.ServerlessWorkflowParser.parseProcess(ServerlessWorkflowParser.java:97)
          at org.kie.kogito.serverless.workflow.parser.ServerlessWorkflowParser.getProcess(ServerlessWorkflowParser.java:110)
          at org.kie.kogito.codegen.process.ProcessCodegen.parseWorkflowFile(ProcessCodegen.java:251)
          ... 46 more
      

      Attachments

        Issue Links

          Activity

            People

              ftirados Francisco Javier Tirado Sarti
              tdolphin-1 Tiago Dolphine
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: