Details
-
Bug Report
-
Resolution: Fixed
-
L3 - Default
-
7.6.0-alpha5
-
None
-
None
Description
I have a Case Definition which was developed against Camunda's BPMN engine at version 7.5.0. The Case Definition works as expected on that version, but when testing it against version 7.6.0-alpha5 a fatal error is encountered.
The Case Definition I've been testing is quite complex, but I've been able to distill the CMMN down to the bare minimum needed to expose the problem. I've attached it as "ContentAuthoring.cmmn11.xml". I've also attached a jar file which can be executed by running "java -jar .\camunda-upgrade-issue-1.0-SNAPSHOT.jar" on the command line. The code for this test can be found at https://github.com/scottmmmm/camunda-7.6.0-alpha5-upgrade-issue.
This will kick off a process engine and will execute the following steps:
1) Configure the process engine
2) Deploy the CMMN definition, as well as a BPMN process referenced by a process task on that Case Definition
3) Create a Case Instance from that Case Definition. The case moves into the "New" stage.
4) Set a variable on this instance. It's used in the second stage (called "Check Publish") to guard execution of a Process Task there.
5) Enable the "Publish" task
6) Complete the "Publish" task
7) Complete the "New" stage
At this point the case is modeled to flow to the second stage ("Check Publish"), and for the Process Task there to be executed. After that, the Check Publish stage should auto complete and the Case should transition to the Exit Criterion, where it terminates.
On Camunda 7.5.0, this behaves as expected. On Camunda 7.6.0-alpha5 the following exception is thrown:
org.camunda.bpm.engine.exception.cmmn.CaseIllegalStateTransitionException: ENGINE-05010 Could not perform transition 'complete on case execution with id '9'.Reason: The case execution is already in state 'completed'.
My testing has shown that issue wasn't present in 7.6.0-alpha2, so it was introduced between then and alpha5.
I believe the issue may have been introduced by the changes to enable evaluation of sentries based on variable update events that were introduced in alpha 3, since removing both the sentry looking for "shouldPublishImmediately" being set to true and the corresponding API call to set the variable causes the issue to disappear.
This is a really serious issue for us and will block us moving to Camunda 7.6.0 if it's not addressed before release. Setting variables to control the execution path of the Case are critical to the design of CMMN models.