More info...
This behavior is reproducible in the Drools JPA test cases.
In org.drools.persistence.session.PersistentStatefulSessionTest.testPersistenceState() and testPersistenceRuleSet(), if you add a breakpoint before loading the processInstance the last time (when it is null because the process has "completed"), you can see that processInstance.getState() returns 1 (ACTIVE) instead of 2 (COMPLETE). I added the ConsoleLogger to the ksession and can see the "AFTER RULEFLOW COMPLETED" log message.
In the other test cases, the state is correctly set to 2 after the process completes.
Hi,
I'm seeing some odd behavior in Drools Flow 5.1.1. When using JPA and creating a StatefulKnowledgeSession using JPAKnowledgeService.newStatefulKnowledgeSession(), processes look like they run to completion, but calling RuleFlowProcessInstance.getState() on process instances created froim this knowledge session returns 1 (STATE_ACTIVE). Calling getActiveNodeIds() throws a NullPointerException.
If I get a StatefulKnowledgeSession without JPA by calling KnowledgeBase.newStatefulKnowledgeSession(), getState() returns 2 (STATE_COMPLETED).
I added KnowledgeRuntimeLoggerFactory.newConsoleLogger(knowledgeSession) and can see in both cases that the process is complete.
Has this been seen before? Is it a known bug? Am I doing something wrong?
Regards,
Dan Nathanson