[rules-users] mvel bug ??

Edson Tirelli tirelli at post.com
Sat Sep 1 13:58:14 EDT 2007


   What we do support is:

list:Variable() from SOME_MVEL_CODE

    And MVEL supports an extended java syntax, so basically I think you can
do anything, as long as the code returns something not null.

    []s
    Edson


2007/8/31, pentarious <cristiano.giuffrida at gmail.com>:
>
>
> Hi,
> I believe the following syntax is not supported in Drools:
> list:Variable() from SOME_JAVA_CODE
> You should use something like: "from $list" or "from collect" or "from
> accumulate", and embed any Java code in an eval statement. Edson, am I
> missing something?
>
> Regards,
>
> CG
>
>
>
> hypnosat7 wrote:
> >
> > Hi,
> >
> >    I have a variable declaration as bellow :
> >
> >>list:Variable() from ruleApp.getVariable("variableName")
> >
> > and this is the result :
> > Exception in thread "AWT-EventQueue-0" org.mvel.CompileException: cannot
> > invoke method
> >       at
> > org.mvel.optimizers.impl.refl.MethodAccessor.getValue(
> MethodAccessor.java:54)
> >       at
> > org.mvel.optimizers.impl.refl.VariableAccessor.getValue(
> VariableAccessor.java:39)
> >       at
> > org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(
> VariableDeepPropertyNode.java:26)
> >       at
> > org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(
> PropertyASTNode.java:19)
> >       at org.mvel.MVELRuntime.execute(MVELRuntime.java:88)
> >       at org.mvel.CompiledExpression.getValue(CompiledExpression.java
> :99)
> >       at org.mvel.MVEL.executeExpression(MVEL.java:236)
> >       at
> > org.drools.base.dataproviders.MVELDataProvider.getResults(
> MVELDataProvider.java:45)
> >       at org.drools.reteoo.FromNode.assertTuple(FromNode.java:61)
> >       at
> >
> org.drools.reteoo.CompositeTupleSinkAdapter.createAndPropagateAssertTuple(
> CompositeTupleSinkAdapter.java:73)
> >       at
> > org.drools.reteoo.LeftInputAdapterNode.assertObject(
> LeftInputAdapterNode.java:131)
> >       at
> > org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(
> SingleObjectSinkAdapter.java:20)
> >       at org.drools.reteoo.ObjectTypeNode.assertObject(
> ObjectTypeNode.java:160)
> >       at org.drools.reteoo.Rete.assertObject(Rete.java:176)
> >       at org.drools.reteoo.ReteooRuleBase.assertObject(
> ReteooRuleBase.java:196)
> >       at
> >
> org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction.execute
> (ReteooWorkingMemory.java:164)
> >       at
> > org.drools.common.AbstractWorkingMemory.executeQueuedActions(
> AbstractWorkingMemory.java:1260)
> >       at
> > org.drools.common.AbstractWorkingMemory.insert(
> AbstractWorkingMemory.java:864)
> >       at
> > org.drools.common.AbstractWorkingMemory.insert(
> AbstractWorkingMemory.java:826)
> >       at
> > org.drools.common.AbstractWorkingMemory.insert(
> AbstractWorkingMemory.java:627)
> >       at
> > mcmipih.rules.rules.integration.drools.ExecutionContext.executeRuleFlow(
> ExecutionContext.java:54)
> >       at
> > mcmipih.rules.demo.service.DemoRuleService.validerRumList(
> DemoRuleService.java:50)
> >       at
> >
> mcmipih.rules.demo.service.DemoRuleService$$FastClassByCGLIB$$beeddc5a.invoke
> (<generated>)
> >       at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> >       at
> >
> org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint
> (Cglib2AopProxy.java:693)
> >       at
> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
> ReflectiveMethodInvocation.java:139)
> >       at
> >
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(
> TransactionInterceptor.java:107)
> >       at
> > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
> ReflectiveMethodInvocation.java:161)
> >       at
> >
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept
> (Cglib2AopProxy.java:628)
> >       at
> >
> mcmipih.rules.demo.service.DemoRuleService$$EnhancerByCGLIB$$961244c9.validerRumList
> (<generated>)
> >       at
> >
> mcmipih.rules.demo.controller.ValidationAppController$ActionValiderSelectionLst.actionPerformed
> (ValidationAppController.java:185)
> >       at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
> >       at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
> Source)
> >       at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
> Source)
> >       at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
> >       at javax.swing.plaf.basic.BasicButtonListener.mouseReleased
> (Unknown
> > Source)
> >       at java.awt.Component.processMouseEvent(Unknown Source)
> >       at javax.swing.JComponent.processMouseEvent(Unknown Source)
> >       at java.awt.Component.processEvent(Unknown Source)
> >       at java.awt.Container.processEvent(Unknown Source)
> >       at java.awt.Component.dispatchEventImpl(Unknown Source)
> >       at java.awt.Container.dispatchEventImpl(Unknown Source)
> >       at java.awt.Component.dispatchEvent(Unknown Source)
> >       at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown
> Source)
> >       at java.awt.LightweightDispatcher.processMouseEvent(Unknown
> Source)
> >       at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
> >       at java.awt.Container.dispatchEventImpl(Unknown Source)
> >       at java.awt.Window.dispatchEventImpl(Unknown Source)
> >       at java.awt.Component.dispatchEvent(Unknown Source)
> >       at java.awt.EventQueue.dispatchEvent(Unknown Source)
> >       at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
> Source)
> >       at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
> Source)
> >       at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> >       at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> >       at java.awt.EventDispatchThread.run(Unknown Source)
> > Caused by: java.lang.NullPointerException
> >       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >       at java.lang.reflect.Method.invoke(Unknown Source)
> >       at
> > org.mvel.optimizers.impl.refl.MethodAccessor.getValue(
> MethodAccessor.java:46)
> >       ... 54 more
> >
>
> --
> View this message in context:
> http://www.nabble.com/mvel-bug----tf4360199.html#a12429712
> Sent from the drools - user mailing list archive at Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
  Edson Tirelli
  Software Engineer - JBoss Rules Core Developer
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070901/9bd6d39d/attachment.html 


More information about the rules-users mailing list