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.
On Mon, Mar 7, 2011 at 11:21 AM, Dan Nathanson <dan(a)ddnconsulting.com>wrote:
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