Hi folks,
From the "Should I be loading a JIRA or have I just mucked
up?" files:
The following import line makes all of the functions in that class
available from ctrl-space for rules marked with both Mvel and Java (and
not specified) dialects
import function bnz.btt.mylend.common.model.utils.DecisionHelper.*;
It compiles fine, and runs fine from any class _not_ marked as dialect
"mvel"
However when I actually execute any of those functions from a rule marked
with dialect "mvel" the following occurs:
(In this example I'm calling from the DecisionHelper the static method
createSystemCreditDecisionReason)
___________________________________
org.drools.runtime.rule.ConsequenceException: rule: CAP 06 Rule
at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(
DefaultConsequenceExceptionHandler.java:23)
at org.drools.common.DefaultAgenda.fireActivation(
DefaultAgenda.java:981)
at org.drools.common.DefaultAgenda.fireNextItem(
DefaultAgenda.java:918)
at org.drools.common.DefaultAgenda.fireAllRules(
DefaultAgenda.java:1130)
at org.drools.common.AbstractWorkingMemory.fireAllRules(
AbstractWorkingMemory.java:740)
at org.drools.common.AbstractWorkingMemory.fireAllRules(
AbstractWorkingMemory.java:706)
at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(
StatefulKnowledgeSessionImpl.java:200)
at bnz.btt.mylend.rules.test.MyLendingRulesTest.main(
MyLendingRulesTest.java:83)
Caused by: [Error: unable to access property (null parent):
createSystemCreditDecisionReason]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(
ReflectiveAccessorOptimizer.java:886)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(
ReflectiveAccessorOptimizer.java:314)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(
ReflectiveAccessorOptimizer.java:137)
at org.mvel2.ast.ASTNode.getReducedValueAccelerated(
ASTNode.java:137)
at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
at org.mvel2.compiler.CompiledExpression.getValue(
CompiledExpression.java:104)
at org.mvel2.MVEL.executeExpression(MVEL.java:1001)
at org.drools.base.mvel.MVELConsequence.evaluate(
MVELConsequence.java:87)
at org.drools.common.DefaultAgenda.fireActivation(
DefaultAgenda.java:972)
... 6 more
___________________________________
There is a work-around: If I import each function separately it works just
fine, eg:
___________________________________
import function
bnz.btt.mylend.common.model.utils.DecisionHelper.createSystemCreditDecisionReason;
___________________________________
But as far as I can tell the ".*" notation to import all functions from a
class SHOULD work.
So: Should I JIRA this, or have I just done something wrong?
Thanks!
Travis Smith
Analyst Programmer
Development Centre
BNZ
DDI: +644 4746356 (Or Ext 76356)
CAUTION - This message may contain privileged and confidential information
intended only for the use of the addressee named above. If you are not the
intended recipient of this message you are hereby notified that any use,
dissemination, distribution or reproduction of this message is prohibited.
This email was sent by the Bank of New Zealand. You can contact us on
0800 ASK BNZ (0800 275 269). Any views expressed in this message are those
of the individual sender and may not necessarily reflect the views of Bank
of New Zealand.