Products | Versions |
---|---|
TIBCO BusinessEvents Enterprise Edition | - |
Not Applicable | - |
Resolution:
Description:
============
Business Events Engine throws the Null Pointer exception when using the concurrentwm property in 3.x
or in 4.x, 5.x when Concurrent RTC flag is checked under Agent Classes tab > AgentClassName > Concurrent RTC
Environment:
==========
TIBCO BusinessEvents 3.x, 4.x, 5.x
Symptoms:
=========
BE Engine throws the following exception -
java.lang.NullPointerException
at com.tibco.cep.runtime.model.element.impl.ConceptImpl.modifyConcept(ConceptImpl.java:664)
at com.tibco.cep.runtime.model.element.impl.PropertyImpl.setConceptModified(PropertyImpl.java:37)
at com.tibco.cep.runtime.model.element.impl.simple.PropertyAtomStringSimple.setCurrent(PropertyAtomStringSimple.java:107)
at com.tibco.cep.runtime.model.element.impl.simple.PropertyAtomStringSimple.setString(PropertyAtomStringSimple.java:114)
at be.gen.Concepts.ClientBandwidthAllocation$ClientBandwidthAllocation$ClientBandwidthAllocationSM$$9y00241z8Transition_9_Rule.action(ClientBandwidthAllocation.java:2877)
at com.tibco.cep.runtime.model.element.stategraph.impl.StateTransitionRule.execute(StateTransitionRule.java:148)
at com.tibco.cep.kernel.core.rete.ReteWM.a(SourceFile:305)
at com.tibco.cep.kernel.core.rete.ReteWM.do(SourceFile:283)
at com.tibco.cep.kernel.core.rete.ReteWM.eventExpiryActions(SourceFile:671)
at com.tibco.cep.kernel.core.base.OperationList$ZeroTTLEventEntry.a(SourceFile:329)
at com.tibco.cep.kernel.core.base.OperationList.retractZeroTTLEvents(SourceFile:254)
at com.tibco.cep.kernel.core.rete.ReteWM.a(SourceFile:338)
at com.tibco.cep.kernel.core.rete.ReteWM.do(SourceFile:283)
at com.tibco.cep.kernel.core.rete.ReteWM.assertObject(SourceFile:1522)
at com.tibco.cep.runtime.session.impl.RuleSessionImpl.assertObject(RuleSessionImpl.java:1214)
at com.tibco.cep.runtime.service.cluster.scheduler.AgentTimeManager$AssertEventHandleTask.run(AgentTimeManager.java:364)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.tibco.cep.runtime.util.CustomBEManagedThread.run(CustomBEManagedThread.java:23)
Cause:
=====
This stack trace has been observed in following situations:
1). When the concept is getting deleted while the timeout is happening.
2). When using concurrentwm without proper locking.
Resolution:
=========
Implement the proper locking when using concurrentwm or Concurrent RTC feature to avoid contention between different threads.