NullPointerException is thrown when event with a timestamp set in the past is modified

Solution Verified - Updated -

Issue

A NPE is thrown when an event with a timestamp set in the past (before pseudo clock) is modified in RHS, and the LHS of the rule reason over event with an 'after' operator.

Following line:

((KieSession) kieRuntime).fireAllRules();

is raising this NPE:

org.jbpm.workflow.instance.WorkflowRuntimeException: [Sample:1 - ruleflow-group1:2] -- null
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:161)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:337)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:296)
    at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:66)
    at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:43)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155)
    at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35)
    at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:226)
    at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:362)
    at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:194)
    at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:176)
    at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:168)
    at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:163)
    at org.drools.core.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1570)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:361)
    at org.test.TimeOperatorTest.main(TimeOperatorTest.java:54)
Caused by: java.lang.NullPointerException
    at org.drools.core.time.impl.PseudoClockScheduler.removeJob(PseudoClockScheduler.java:151)
    at org.drools.core.phreak.PhreakTimerNode.doLeftUpdates(PhreakTimerNode.java:124)
    at org.drools.core.phreak.PhreakTimerNode.doNode(PhreakTimerNode.java:65)
    at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:357)
    at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:161)
    at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:116)
    at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:195)
    at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:68)
    at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:935)
    at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1200)
    at org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:952)
    at org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:926)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:256)
    at org.test.TimeOperatorTest$1.afterRuleFlowGroupActivated(TimeOperatorTest.java:39)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl$AgendaEventListenerWrapper.afterRuleFlowGroupActivated(StatefulKnowledgeSessionImpl.java:717)
    at org.drools.core.event.AgendaEventSupport.fireAfterRuleFlowGroupActivated(AgendaEventSupport.java:137)
    at org.drools.core.common.DefaultAgenda.activateRuleFlowGroup(DefaultAgenda.java:677)
    at org.drools.core.common.DefaultAgenda.activateRuleFlowGroup(DefaultAgenda.java:665)
    at org.drools.core.runtime.rule.impl.AgendaImpl.activateRuleFlowGroup(AgendaImpl.java:74)
    at org.jbpm.workflow.instance.node.RuleSetNodeInstance.internalTrigger(RuleSetNodeInstance.java:79)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155)
    ... 15 more

Environment

  • Red Hat JBoss BRMS
    • 6.0.0
    • 6.0.1

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.