[
https://issues.jboss.org/browse/JBRULES-2409?page=com.atlassian.jira.plug...
]
kenneth westelinck commented on JBRULES-2409:
---------------------------------------------
I like the second idea where you expect the developer to deliberately escape the quotes in
the cells.
Although I think it would be more natural for a developer to write:
$myObject.setField("A 12\" rule") in a cell. A business user will never
write this, he will write 'A 12" rule'.
Ideally, the escaping "rule" should be intelligent enough to see the cell
contains actual code, so no escaping is necessary (since the cell is written and
maintained by a developer). But I guess there will always be scenarios slipping through
the holes of the safety net. Could we provide some kind of indication in a cell (or
column) to tell Drools the cell contains actual code, so its safe to expect the developer
properly escaped everything?
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