[
https://issues.jboss.org/browse/JBRULES-2409?page=com.atlassian.jira.plug...
]
Jos Hendriks commented on JBRULES-2409:
---------------------------------------
I really like the parser to be intelligent. But I agree that it is very hard (much work)
to make it work properly. Even in case of Michael's idea what should we do in the rare
case a business user writes \"? He would then get " in the drl without expecting
it. I know chances are small but still.
As ar as I'm aware there is curently no mechanism in the decision table to add meta
data to a specific cell (Or is there?). The way I see it is that in most cases you want to
enable/disable quote escaping per sheet. Developers and business users typically do not
edit the same rule sheet. The busines user should not be bothered with stuff that he does
not understand or may not edit.
Given that the sequential parameter is also a sheet based parameter, I therefor think it
is best to use that mechanism.
Kenneth would you be happy with a global (e.g. sheet) parameter?
Quotes should not be escaped when parsing a decision table
----------------------------------------------------------
Key: JBRULES-2409
URL:
https://issues.jboss.org/browse/JBRULES-2409
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-decisiontables
Affects Versions: 5.0.1.FINAL
Environment: jdk 1.6 update 12
windows XP
Reporter: Jos Hendriks
Assignee: Michael Anstis
Labels: decision, drl, escaping, generated, quotes, table
Fix For: 5.3.0.CR1
Since drools 5 quotes that are in an action cell of a decision table are escaped. As we
are using method calls with String parameters in our action cells this results in invalid
drl.
I've reproduced the issue in the example decision table project generated
by the eclipse plugin. After generating a new Drools project with decision
table example I added the following to the Message class:
public String getMessage(String dummy) {
return this.message;
}
In the decision table I change cell E9 from
'm.setMessage("$param");update(m);' to
'm.setMessage($param);update(m);'
and cell E11 from 'Goodbye cruel world' to
'm.getMessage("msg")'.
When I use Drools 5 I get escaped double-quotes which causes an error
in com.sample.DecisionTableTest.readKnowledgeBase:
m.setMessage(m.getMessage(\"msg\"));update(m);
Version 4.0.7 did not escape quotes and correctly generated the drl:
m.setMessage(m.getMessage("msg"));update(m);
I found out that escaping of quoted has been added by request, JBRULES-1811. Please
reconsider the decision and or implementation made to solve that issue. Possibly add a
keyword to the decision table to define the way qoutes are parsed? Like Sequential for
salience....
The forum entry I have made includes the files and full drl. Please contact me if you
need more information or help.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira