[jboss-jira] [JBoss JIRA] Updated: (JBRULES-2253) ClassNotFound when ASM optimizer kicks in in MVEL consequence

Mark Proctor (JIRA) jira-events at lists.jboss.org
Mon May 16 21:58:01 EDT 2011


     [ https://issues.jboss.org/browse/JBRULES-2253?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Proctor updated JBRULES-2253:
----------------------------------

    Fix Version/s: 5.3.0.M1
                       (was: 5.2.0.M1)


> ClassNotFound when ASM optimizer kicks in in MVEL consequence
> -------------------------------------------------------------
>
>                 Key: JBRULES-2253
>                 URL: https://issues.jboss.org/browse/JBRULES-2253
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core
>    Affects Versions: 5.0.1.FINAL
>            Reporter: Michael Neale
>            Assignee: Tihomir Surdilovic
>            Priority: Critical
>             Fix For: 5.3.0.M1
>
>         Attachments: repository_export_mic.zip
>
>
> (ok if the subject is really confusing, perhaps this bug isn't for you). 
> In chasing down JBRULES-2234 I found this. Instructions (apologies for relying on Guvnor to reproduce): 
> To reproduce is not
> easy, but here are some instructions:
> * Run latest Guvnor (if you are able to, if not, then the rest is moot !).
> * Import the attached repo (unzip it first).
> * browse to KnowledgeBases/org/acme/insurance/pricing/
> - press "build package"
> * shut it down, restart (flushes caches etc...)
> Then:
> * browse to KnowledgeBases/org/acme/insurance/pricing/Test Scenarios
> * open PolicyQuotePackageTest
> * run it:
> Now you should see an exception like this:
> Caused by: java.lang.NoClassDefFoundError: org/acme/insurance/Policy
>        at ASMAccessorImpl_62408281250565694450.setValue(Unknown Source)
>        at org.mvel2.optimizers.dynamic.DynamicSetAccessor.setValue(DynamicSetAccessor.java:74)
>        at org.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:47)
>        at org.mvel2.MVEL.executeSetExpression(MVEL.java:962)
>        at org.mvel2.ast.WithNode$ParmValuePair.eval(WithNode.java:242)
>        at org.mvel2.ast.WithNode.getReducedValueAccelerated(WithNode.java:67)
>        at org.mvel2.ast.InterceptorWrapper.getReducedValueAccelerated(InterceptorWrapper.java:38)
>        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:91)
>        at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:966)
> This is due to it loading a previously serialized version of the KB.
> If it was to run off a freshly compiled one, its all fine. Also, if I
> tell MVEL to NOT use ASM optimizer, it works fine (using reflection).
> So clearly the stuff is available to the classpath in the right
> places... its only to do with ASM in mvel post deserialization. (and
> for that to happen, MVEL has to execute the compiled expression enough
> to kick in the JIT).
> MVELCompilationUnit in drools is worth examining too... still not sure where the problem lies. 

--
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