[rules-dev] Subject : ClassCastException in MVEL with org.mvel2.util.MethodStub

brijesh brijesh.singh at cigna.com
Thu Dec 30 16:13:40 EST 2010


I have a rule package that has 1000+ rules, these rules are getting executed
for a set of members(more than 1000) on their facts one by one,
in this process a few random rules (one of them is listed below) are
throwing exception at run time as listed below randomly for some members 
every time. I checked rules that are working fine in my test. I am not sure
why this is happening, please advice.


I would appreciate your valuable assistence in advance.


============Rule============================
package com.cigna.coderunner.external.rules;

import com.cigna.acme.domains.ccdm._2010._03.CaseManagement;
import com.cigna.coderunner.engine.ccdm.value.ProfileFact;
import com.cigna.coderunner.engine.ccdm.value.ConditionFact;
import com.cigna.acme.domains.ccdm._2010._03.PrePostDischrgManagement;
import com.cigna.coderunner.engine.ccdm.value.Member;
import com.cigna.coderunner.engine.ccdm.value.RiskFact;
import com.cigna.coderunner.engine.ccdm.value.MemberBiometric;
import com.cigna.coderunner.engine.ccdm.value.MemberPreferences;
import com.cigna.coderunner.engine.ccdm.value.Product;
import java.util.List;
import com.cigna.acme.domains.derived.fact._2010._03.DerivedFact;
import com.cigna.acme.domains.derived.fact._2010._03.FactAttributes;
import com.cigna.acme.domains.derived.fact._2010._03.FactCategoryType;
import com.cigna.acme.domains.actions._2010._03.QuestionAnswer;
import com.cigna.acme.domains.actions._2010._03.AutoOutreachActionType;
import com.cigna.acme.domains.actions._2010._03.ActionInfo;
import com.cigna.acme.domains.common._2010._03.FactSourceClassificationType;
import com.cigna.acme.domains.actions._2010._03.FulfillmentActionType;
import com.cigna.coderunner.drools.operators.ValueEvaluatorDefinition;
import com.cigna.acme.domains.actions._2010._03.AssessmentActionType;
import com.cigna.acme.domains.roadmap._2010._03.ServiceRoadMapInfo;
import com.cigna.acme.domains.common._2010._03.Attribute;
import com.cigna.acme.domains.derived.fact._2010._03.FactValueType;
import org.joda.time.DateTime;


global com.cigna.coderunner.drools.util.DrlHelper drlHelper;

rule "derivedFact Rule:59070:0:1292262841194" 
	 salience -0
	 dialect "mvel"
	 activation-group "derivedFact Rule:59070:0:1292262841194"
	 agenda-group "derivedFact"
	 when
		DerivedFact( defId != null , defId == "52600" , 
		( factValue == null || factValue.value == null || factValue.value ==
"null" || factValue.value.length == 0 ) )

	 then
DerivedFact derivedfact = new DerivedFact();
derivedfact.setDefId("59070");
derivedfact.setOrigInferredDt(new DateTime());
derivedfact.setFactSource(FactSourceClassificationType.ACME_DERIVED_FACT);
FactValueType factValueType = new FactValueType();
factValueType.setValue("true");
factValueType.setType("boolean");
derivedfact.setFactValue(factValueType);
insertLogical(derivedfact);
System.out.println("#############################################");
System.out.println("#Rule with Fact Def ID#59070 with Salience 0
Successfully executed#");
System.out.println("#############################################");
end

===============================Execption==============

java.lang.ClassCastException: java.lang.Class incompatible with
org.mvel2.util.MethodStub
	at
org.mvel2.ParserConfiguration.getStaticImport(ParserConfiguration.java:71)
	at org.mvel2.ParserContext.getStaticImport(ParserContext.java:246)
	at org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:324)
	at org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:106)
	at
org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:363)
	at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:258)
	at org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:1895)
	at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:840)
	at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:314)
	at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:137)
	at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:137)
	at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
	at
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)
	at org.mvel2.MVEL.executeExpression(MVEL.java:995)
	at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:71)
	at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:917)
	at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:856)
	at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1071)
	at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:785)
	at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:751)
	at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218)
	at
com.cigna.coderunner.drools.session.impl.StatefulKnowledgeSessionWrapper.fireAllRules(StatefulKnowledgeSessionWrapper.java:161)
	at
com.cigna.coderunner.service.evaluation.impl.EvaluationServiceImpl.executeDerivedFactProducingRules(EvaluationServiceImpl.java:156)
	at
com.cigna.coderunner.service.evaluation.impl.EvaluationServiceImpl.evaluateAtInitialization(EvaluationServiceImpl.java:119)
	at
com.cigna.coderunner.service.outreach.impl.OutreachServiceImpl.initializeOutreachState(OutreachServiceImpl.java:149)
	at
com.cigna.coderunner.engine.service.impl.OutreachBatchServiceImpl.execute(OutreachBatchServiceImpl.java:27)
	at
com.cigna.coderunner.engine.service.impl.OutreachBatchServiceImpl$$FastClassByCGLIB$$d77d8173.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
	at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:152)
	at
org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:54)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
	at
com.cigna.coderunner.engine.service.impl.OutreachBatchServiceImpl$$EnhancerByCGLIB$$17882964.execute(<generated>)
	at
com.cigna.coderunner.engine.service.impl.MedicalManagementBatchServiceImpl.execute(MedicalManagementBatchServiceImpl.java:39)
	at
com.cigna.coderunner.engine.service.impl.MedicalManagementBatchServiceImpl$$FastClassByCGLIB$$beccc87c.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
	at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:152)
	at
org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:54)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
	at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
	at
com.cigna.coderunner.engine.service.impl.MedicalManagementBatchServiceImpl$$EnhancerByCGLIB$$291a1d07.execute(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method...
	
	
thx,
Brijesh Singh
-- 
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Subject-ClassCastException-in-MVEL-with-org-mvel2-util-MethodStub-tp2169490p2169490.html
Sent from the Drools - Dev mailing list archive at Nabble.com.


More information about the rules-dev mailing list