-
Bug
-
Resolution: Done
-
Major
-
jBPM 6.3.0.CR2
-
None
-
NEW
-
NEW
NPE is thrown from drools when:
- process that uses conditional event that relies on process instance as condition
- uses RuleAwareProcessEventLister to automatically insert and delete process instance from working memory
same happens on fact update
org.jbpm.workflow.instance.WorkflowRuntimeException: [IntermediateCatchEvent:1 - EndProcess:4] -- null
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:179)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:366)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:325)
at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:61)
at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:57)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:173)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:366)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:381)
at org.jbpm.workflow.instance.node.StateNodeInstance.activationCreated(StateNodeInstance.java:156)
at org.jbpm.workflow.instance.node.StateNodeInstance.signalEvent(StateNodeInstance.java:103)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:490)
at org.jbpm.process.instance.event.DefaultSignalManager.internalSignalEvent(DefaultSignalManager.java:82)
at org.jbpm.process.instance.event.DefaultSignalManager$SignalAction.execute(DefaultSignalManager.java:181)
at org.drools.core.phreak.SynchronizedBypassPropagationList$1.execute(SynchronizedBypassPropagationList.java:31)
at org.drools.core.common.DefaultAgenda.executeTask(DefaultAgenda.java:1343)
at org.drools.core.phreak.SynchronizedBypassPropagationList.addEntry(SynchronizedBypassPropagationList.java:28)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.addPropagation(StatefulKnowledgeSessionImpl.java:1989)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.queueWorkingMemoryAction(StatefulKnowledgeSessionImpl.java:1548)
at org.jbpm.process.instance.event.DefaultSignalManager.signalEvent(DefaultSignalManager.java:73)
at org.jbpm.process.instance.ProcessRuntimeImpl$2.matchCreated(ProcessRuntimeImpl.java:446)
at org.drools.core.event.AgendaEventSupport.fireActivationCreated(AgendaEventSupport.java:58)
at org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:110)
at org.drools.core.phreak.PhreakRuleTerminalNode.doLeftInserts(PhreakRuleTerminalNode.java:84)
at org.drools.core.phreak.PhreakRuleTerminalNode.doNode(PhreakRuleTerminalNode.java:57)
at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:318)
at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:166)
at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:123)
at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:65)
at org.drools.core.common.DefaultAgenda.addEagerRuleAgendaItem(DefaultAgenda.java:273)
at org.drools.core.reteoo.PathMemory.queueRuleAgendaItem(PathMemory.java:152)
at org.drools.core.reteoo.PathMemory.doLinkRule(PathMemory.java:120)
at org.drools.core.reteoo.PathMemory.linkSegment(PathMemory.java:94)
at org.drools.core.reteoo.SegmentMemory.notifyRuleLinkSegment(SegmentMemory.java:185)
at org.drools.core.reteoo.SegmentMemory.linkNode(SegmentMemory.java:147)
at org.drools.core.reteoo.BetaMemory.linkNode(BetaMemory.java:93)
at org.drools.core.reteoo.BetaNode.assertObject(BetaNode.java:289)
at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:60)
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:60)
at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:298)
at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
at org.drools.core.phreak.SynchronizedBypassPropagationList$1.execute(SynchronizedBypassPropagationList.java:31)
at org.drools.core.common.DefaultAgenda.executeTask(DefaultAgenda.java:1343)
at org.drools.core.phreak.SynchronizedBypassPropagationList.addEntry(SynchronizedBypassPropagationList.java:28)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.addPropagation(StatefulKnowledgeSessionImpl.java:1989)
at org.drools.core.reteoo.EntryPointNode.assertObject(EntryPointNode.java:224)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:277)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:237)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:1465)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:1420)
at org.jbpm.bpmn2.IntermediateEventTest.testIntermediateCatchEventConditionSetVariableAfter(IntermediateEventTest.java:2468)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runners.Suite.runChild(Suite.java:127)
at org.junit.runners.Suite.runChild(Suite.java:26)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.NullPointerException
at org.drools.core.phreak.RuleNetworkEvaluator.deleteLeftChild(RuleNetworkEvaluator.java:742)
at org.drools.core.phreak.PhreakJoinNode.doLeftDeletes(PhreakJoinNode.java:401)
at org.drools.core.phreak.PhreakJoinNode.doNode(PhreakJoinNode.java:48)
at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:543)
at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:529)
at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:336)
at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:166)
at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:123)
at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:65)
at org.drools.core.common.DefaultAgenda.addEagerRuleAgendaItem(DefaultAgenda.java:273)
at org.drools.core.reteoo.PathMemory.queueRuleAgendaItem(PathMemory.java:152)
at org.drools.core.reteoo.PathMemory.doLinkRule(PathMemory.java:120)
at org.drools.core.reteoo.PathMemory.linkSegment(PathMemory.java:94)
at org.drools.core.reteoo.SegmentMemory.notifyRuleLinkSegment(SegmentMemory.java:185)
at org.drools.core.reteoo.SegmentMemory.notifyRuleLinkSegment(SegmentMemory.java:178)
at org.drools.core.reteoo.LeftInputAdapterNode$LiaNodeMemory.setNodeDirty(LeftInputAdapterNode.java:579)
at org.drools.core.reteoo.LeftInputAdapterNode.doDeleteSegmentMemory(LeftInputAdapterNode.java:298)
at org.drools.core.reteoo.LeftInputAdapterNode.doDeleteObject(LeftInputAdapterNode.java:265)
at org.drools.core.reteoo.LeftInputAdapterNode.retractLeftTuple(LeftInputAdapterNode.java:360)
at org.drools.core.reteoo.ObjectTypeNode.doRetractObject(ObjectTypeNode.java:334)
at org.drools.core.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:317)
at org.drools.core.reteoo.EntryPointNode.propagateRetract(EntryPointNode.java:358)
at org.drools.core.phreak.PropagationEntry$Delete.execute(PropagationEntry.java:172)
at org.drools.core.phreak.SynchronizedBypassPropagationList$1.execute(SynchronizedBypassPropagationList.java:31)
at org.drools.core.common.DefaultAgenda.executeTask(DefaultAgenda.java:1343)
at org.drools.core.phreak.SynchronizedBypassPropagationList.addEntry(SynchronizedBypassPropagationList.java:28)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.addPropagation(StatefulKnowledgeSessionImpl.java:1989)
at org.drools.core.reteoo.EntryPointNode.retractObject(EntryPointNode.java:346)
at org.drools.core.common.NamedEntryPoint.delete(NamedEntryPoint.java:537)
at org.drools.core.common.NamedEntryPoint.delete(NamedEntryPoint.java:500)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.delete(StatefulKnowledgeSessionImpl.java:1500)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.delete(StatefulKnowledgeSessionImpl.java:1491)
at org.jbpm.process.instance.event.listeners.RuleAwareProcessEventLister.afterProcessCompleted(RuleAwareProcessEventLister.java:61)
at org.drools.core.event.ProcessEventSupport.fireAfterProcessCompleted(ProcessEventSupport.java:76)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:364)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:384)
at org.jbpm.workflow.instance.node.EndNodeInstance.internalTrigger(EndNodeInstance.java:67)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:173)
... 87 more