[jboss-jira] [JBoss JIRA] Commented: (JBRULES-2246) Several random MVEL related errors while using drools.

Mark Proctor (JIRA) jira-events at lists.jboss.org
Wed Dec 1 23:16:05 EST 2010


    [ https://jira.jboss.org/browse/JBRULES-2246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12566735#comment-12566735 ] 

Mark Proctor commented on JBRULES-2246:
---------------------------------------

MVEL was a 3rd party library and a lot of work has been done to ensure it's thread safety in more recent versions of Drools. It is recommended you ugprade to get those benefits. If you require a patched 4.0.x version please contact sales at jboss.com for priority support.

> 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: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list