-
Bug
-
Resolution: Won't Do
-
Minor
-
None
-
6.0.0
Description of problem:
The following code will fail on NPE when rules are fired because they use the 'executed' global which is set before process start and is lost:
KieBase kbase = createKnowledgeBaseFromResources(
ResourceFactory.newClassPathResource("BPMN2-BusinessRuleTask-debug.bpmn2"),
ResourceFactory.newClassPathResource("BPMN2-BusinessRuleTask.drl"));
List<String> executeRuleList = new ArrayList<String>();
KieSession ksession = createKnowledgeSession(kbase);
ksession.setGlobal("executed", executeRuleList);
ProcessInstance pi = ksession.startProcess("BPMN2-BusinessRuleTask");
Assert.assertNotNull(pi);
Assert.assertTrue(pi.getState() == ProcessInstance.STATE_ACTIVE);
int sessionId = ksession.getId();
System.out.println("Signal Continue");
ksession.signalEvent("Continue", null);
ksession.dispose();
ksession = restoreKnowledgeSession(sessionId, kbase, null);
System.out.println("Fire Rules");
ksession.fireAllRules();
ksession.dispose();