]
Mario Fusco commented on DROOLS-325:
------------------------------------
I found where the problem is with the Message class: it has a field named message so it
adds it to the set of the used declarations for the condition to be evaluated generating
the method that clearly cannot compile.
{code}
public static boolean eval0( java.lang.String Message , int status ) throws
java.lang.Exception {
return ( status == Message.HELLO );
}
{code}
Conditional named consequences don't allow references to public
fields
----------------------------------------------------------------------
Key: DROOLS-325
URL:
https://issues.jboss.org/browse/DROOLS-325
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 6.0.0.CR5
Environment: Mac OS-X 10.9, JBoss Developer Studio, Oracle Hotspot 1.7.0_45
Reporter: Duncan Doyle
Assignee: Mario Fusco
Labels: conditional, consequences, named
See this project, which is based on the standard Sample.drl of the Drools Eclipse plugin:
https://github.com/DuncanDoyle/DroolsConditionalNamedConsequenceIssue
As you can see in the 'src/main/resources/rules/Sample.drl', the first rule,
which is commented out, references the public fields Message.HELLO and Message.GOODBYE in
the conditional 'if' statement, i.e. "if (m.status == Message.HELLO) break
[sayHello]". The compiler throws this error:
Rule Compilation error HELLO cannot be resolved or is not a field.
When I use the actual value of Message.HELLO and Message.GOODBYE, as shown in the second
rule 'if (m.getStatus() == 0) break [sayHello]', everything works fine.
Please note that there is also an issue with using MVEL expressions in Conditional named
consequences (as you can see in my example rules). That issue is tracked in JIRA
DROOLS-324.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: