apache / incubator-kie-kogito-runtimes

Kogito Runtimes - Kogito is a cloud-native business automation technology for building cloud-ready business applications.
http://kogito.kie.org
Apache License 2.0
536 stars 206 forks source link

SW - onErrors handler on a compensating state fails validation #3576

Closed deepakkapoor23 closed 2 months ago

deepakkapoor23 commented 2 months ago

Describe the bug

An onErrors block defined on a compensating operation state fails with a build validation error.

{ "name": "CancelItem", "type": "operation", "usedForCompensation": true, "actions": [ { "functionRef": { "refName": "cancelItem", "arguments": { "orderId": ".itemId" } } } ], "onErrors": [ { "errorRefs": ["ServiceException", "TransportException"], "transition": "HandleError" } ] }

Expected behavior

Ecpect the compensating state to be able to define an error handler just as any other state.

Actual behavior

Validation failure:

Found error: {}: java.lang.IllegalArgumentException: Could not find node to attach to: 50 at org.jbpm.ruleflow.core.RuleFlowProcessFactory.findNodeByIdOrUniqueIdInMetadata(RuleFlowProcessFactory.java:432) at org.jbpm.ruleflow.core.RuleFlowProcessFactory.linkBoundaryEvents(RuleFlowProcessFactory.java:301) at org.jbpm.ruleflow.core.RuleFlowProcessFactory.link(RuleFlowProcessFactory.java:278) at org.jbpm.ruleflow.core.RuleFlowProcessFactory.validate(RuleFlowProcessFactory.java:241) at org.kie.kogito.serverless.workflow.parser.ServerlessWorkflowParser.parseProcess(ServerlessWorkflowParser.java:173) at org.kie.kogito.serverless.workflow.parser.ServerlessWorkflowParser.getProcessInfo(ServerlessWorkflowParser.java:184) at org.kie.kogito.codegen.process.ProcessCodegen.parseWorkflowFile(ProcessCodegen.java:229) at org.kie.kogito.codegen.process.ProcessCodegen.lambda$ofCollectedResources$1(ProcessCodegen.java:128)

How to Reproduce?

No response

Output of uname -a or ver

windows 11

Output of java -version

java 17

GraalVM version (if different from Java)

No response

Kogito version or git rev (or at least Quarkus version if you are using Kogito via Quarkus platform BOM)

999-snapshot

Build tool (ie. output of mvnw --version or gradlew --version)

gradle 8.6

Additional information

No response