Products | Versions |
---|---|
TIBCO BusinessEvents Enterprise Edition | - |
Not Applicable | - |
Resolution:
Description:
============
2011 Jun 21 14:40:03:674 GMT -4 guy-T400.na.tibco.com Error [main] - [runtime.service] [inference-class] Got runtime exception while executing Rule be.gen.Rules.PFLSA_PFLLOC(Rules.PFLSA_PFLLOC) Action be.gen.Rules.PFLSA_PFLLOC$PFLSA_PFLLOC_a@cf7fda Objects <be.gen.Concepts.PFLSA@id=6&v=0, be.gen.Concepts.PFLLOC@id=3&v=0>
com.tibco.cep.runtime.model.element.ContainedConceptException: Attempted to set Instance be.gen.Concepts.PFLSA@id=6&v=0 as the parent of Instance be.gen.Concepts.PFLLOC@id=3&v=0 while it has been set to Instance be.gen.Concepts.PFLSA@id=5&v=0
at com.tibco.cep.runtime.model.element.impl.ConceptImpl.setParent(ConceptImpl.java:1031)
at com.tibco.cep.runtime.model.element.impl.simple.PropertyAtomContainedConceptSimple.setCurrent(PropertyAtomContainedConceptSimple.java:203)
at com.tibco.cep.runtime.model.element.impl.simple.PropertyAtomContainedConceptSimple.setContainedConcept(PropertyAtomContainedConceptSimple.java:233)
at com.tibco.be.functions.property.PropertyArrayHelper.appendContainedConcept(PropertyArrayHelper.java:761)
at be.gen.Rules.PFLSA_PFLLOC$PFLSA_PFLLOC_a.execute(PFLSA_PFLLOC.java:93)
Environment:
==========
BussinessEvents 3.0.x and 4.0.1
Symptoms:
=========
The Conditons of the rull may appear to protect against this happening. For example:
pflloc.ST_PFL_TYP==pflsa.ST_PFL_TYP;
pflloc@parent==null;
In this case it would appear the condition of 'pflloc@parent==null' prevenst the assignment of a parent in a Contained Concept if it was already filled.
Cause:
=====
This is caused because the Contained Concepts are updated and that forces additional RuleAgenda firings over the same data. For the next evaluation the rule data has changed but the Condition is not reevaluated.
Resolution:
=========
Put a check in the Rule itself for 'pflloc@parent==null' such as:
if (pflloc@parent == null) {
//Set the parent.
}