Several random MVEL related errors while using drools.
------------------------------------------------------
Key: JBRULES-2246
URL:
https://jira.jboss.org/browse/JBRULES-2246
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 4.0.7
Environment: Unix
Reporter: Rajesh Nair
Assignee: Mark Proctor
We are getting several MVEL related exceptions while running a batch program that is
multi-threaded. Sometimes the bean name gets corrupted and it complains about
ClassNotFoundException. Sometimes, it complains that a specific property is not found.
When we restart the batch program, the problem goes away. Is there a way to fix this? We
are using JDK 1.5 and the mvel jar version is mvel-1.3.1-java1.4.jar. If this jar will not
work with drools 4.0.7, please suggest the upgrade path. In the worst case, we can use
Java dialect. However, all our rules are created via the BRMS. So, how do you force the
BRMS to use Java dialect?
Thanks,
Rajesh
Here is a sample stacktrace.
rg.drools.RuntimeDroolsException: Exception executing predicate eval( (field1 + field2 +
field3) <= 0 )
at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:216)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
at org.drools.reteoo.Rete.assertObject(Rete.java:175)
at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684)
at
org.drools.reteoo.ReteooStatelessSession.executeWithResults(ReteooStatelessSession.java:198)
at walgreens.pbs.ruleengine.worker.RulesetExecutor.run(Unknown Source)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:803)
Caused by: org.mvel.PropertyAccessException: unable to resolve property: field2 (where
field2 is the name of the property)
at
org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.compileAccessor(ASMAccessorOptimizer.java:267)
at
org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.optimizeAccessor(ASMAccessorOptimizer.java:163)
at org.mvel.ASTNode.getReducedValueAccelerated(ASTNode.java:186)
at
org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21)
at
org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21)
at org.mvel.ExecutableAccessor.getValue(ExecutableAccessor.java:45)
at org.mvel.ast.Substatement.getReducedValueAccelerated(Substatement.java:24)
at
org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21)
at org.mvel.MVELRuntime.execute(MVELRuntime.java:90)
at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)
at org.mvel.MVEL.executeExpression(MVEL.java:235)
at
org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:45)
at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:209)
... 14 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at
org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.loadClass(ASMAccessorOptimizer.java:1003)
at
org.mvel.optimizers.impl.asm.ASMAccessorOptimizer._initializeAccessor(ASMAccessorOptimizer.java:206)
at
org.mvel.optimizers.impl.asm.ASMAccessorOptimizer.compileAccessor(ASMAccessorOptimizer.java:264)
... 26 more
Caused by: java.lang.LinkageError: ASMAccessorImpl_19543133401249413540370
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:223)
at java.lang.ClassLoader.defineClass(ClassLoader.java:162)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: