]
Geoffrey De Smet updated JBRULES-2518:
--------------------------------------
Fix Version/s: 5.4.0.Beta3
(was: 5.4.0.Beta2)
equal sign (=) in string literal in MVEL modify statement causes
error
----------------------------------------------------------------------
Key: JBRULES-2518
URL:
https://issues.jboss.org/browse/JBRULES-2518
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core (expert)
Affects Versions: 5.0.1.FINAL
Environment: Mac OS X 10.6.3, Java 1.6
Reporter: Steve Miner
Assignee: Mark Proctor
Fix For: 5.4.0.Beta3
rule "mvel equal sign bug"
dialect "mvel"
when
$d: Dog(name == "Bertie")
then
modify ($d) {name = "Bertie = Boy"};
end
Note the string literal for the new value for name contains an equal sign (=). That
causes an error. Apparently, the modify macro or the MVEL parser is choking on the equal
sign.
java.lang.Error: org.drools.rule.InvalidRulePackage: Unable to build expression for
'consequence': [Error: unterminated literal]
[Near : {... h ($d) {name = "Bertie = Boy"} ....}]
^
[Line: 1, Column: 43] ' modify ($d) {name = "Bertie = Boy"};
' : [Rule name='mvel equal sign bug']
If I remove the "=" from inside the string literal (substituting "is
a"), it works as expected.
rule "mvel equal sign bug"
dialect "mvel"
when
$d: Dog(name == "Bertie")
then
modify ($d) {name = "Bertie is a Boy"};
end
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: