In the following, [A] works but [B] yields the exception below. Is this some
kind of limitation of MVEL?
dialect "mvel"
...
global StateFactory stateFactory
global String NotOperating
...
rule "transition"
when
...
then
newState = stateFactory(NotOpering) // [A]
newState = new State(NotOperating) // [B]
end
----------------------
Caused by: [Error: unable to access property (null parent): NotOperating]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:860)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getBeanProperty(ReflectiveAccessorOptimizer.java:584)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:312)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:138)
at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:133)
at
org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:41)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileConstructor(ReflectiveAccessorOptimizer.java:1090)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeObjectCreation(ReflectiveAccessorOptimizer.java:1047)
at
org.mvel2.ast.NewObjectNode.getReducedValueAccelerated(NewObjectNode.java:158)
at
org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:37)
at
org.mvel2.ast.AssignmentNode.getReducedValueAccelerated(AssignmentNode.java:89)
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:87)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:966)
--
View this message in context:
http://old.nabble.com/Can%27t-use-global-in-RHS-constructor-call-tp264186...
Sent from the drools - user mailing list archive at
Nabble.com.