[
https://issues.jboss.org/browse/DROOLS-4358?page=com.atlassian.jira.plugi...
]
Toshiya Kobayashi edited comment on DROOLS-4358 at 7/25/19 11:28 PM:
---------------------------------------------------------------------
Attached multilinesInCellsTest.zip which tests variations of this issue (run 'mvn
test'). SpreadsheetCompiler generates DRL like this:
{noformat}
package com.redhat.example.business;
//generated from Decision Table
import org.drools.decisiontable.Person;
// rule values at C12, header at C7
rule "multiple lines in action_12"
no-loop true
when
$fact:Person(name == "John",\nage >= 20)
then
modify($fact){
setAge(30),
setName(xxxx");
}
System.out.println("okay");\nSystem.out.println("great");
System.out.println(" ** " +drools.getRule().getName() + ", $fact = "
+ $fact);
end
{noformat}
Expected DRL is:
{noformat}
package com.redhat.example.business;
//generated from Decision Table
import org.drools.decisiontable.Person;
// rule values at C12, header at C7
rule "multiple lines in action_12"
no-loop true
when
$fact:Person(name == "John",age >= 20)
then
modify($fact){
setAge(30),
setName("ssss\nxxxx");
}
System.out.println("okay");System.out.println("great");
System.out.println(" ** " +drools.getRule().getName() + ", $fact = "
+ $fact);
end
{noformat}
was (Author: tkobayashi):
Attached multilinesInConditionTest.zip which tests variations of this issue (run 'mvn
test'). SpreadsheetCompiler generates DRL like this:
{noformat}
package com.redhat.example.business;
//generated from Decision Table
import org.drools.decisiontable.Person;
// rule values at C12, header at C7
rule "multiple lines in action_12"
no-loop true
when
$fact:Person(name == "John",\nage >= 20)
then
modify($fact){
setAge(30),
setName(xxxx");
}
System.out.println("okay");\nSystem.out.println("great");
System.out.println(" ** " +drools.getRule().getName() + ", $fact = "
+ $fact);
end
{noformat}
Expected DRL is:
{noformat}
package com.redhat.example.business;
//generated from Decision Table
import org.drools.decisiontable.Person;
// rule values at C12, header at C7
rule "multiple lines in action_12"
no-loop true
when
$fact:Person(name == "John",age >= 20)
then
modify($fact){
setAge(30),
setName("ssss\nxxxx");
}
System.out.println("okay");System.out.println("great");
System.out.println(" ** " +drools.getRule().getName() + ", $fact = "
+ $fact);
end
{noformat}
line separators in CONDITION column in spreadsheet are escaped
---------------------------------------------------------------
Key: DROOLS-4358
URL:
https://issues.jboss.org/browse/DROOLS-4358
Project: Drools
Issue Type: Bug
Components: decision tables
Affects Versions: 7.24.0.Final
Reporter: Hiroko Miura
Assignee: Mario Fusco
Priority: Major
Labels: support
Attachments: multilinesInCellsTest.zip, multilinesInConditionTest.zip
If there are several lines in a cell of CONDITION(LHS), line separators are escaped, and
results in build failure.
Output from SpredSheetCompiler:
{noformat}
rule "multiple lines in action_12"
when
$fact:Person(name == "John",\nage >= 20)
then
...
end
{noformat}
Error when building:
{noformat}
java.lang.AssertionError: [7,30]: [ERR 101] Line 7:30 no viable alternative at input
'\' in rule "multiple lines in action_12"
[0,0]: Parser returned a null Package
{noformat}
Escaping should be done only for literal String?
--
This message was sent by Atlassian Jira
(v7.12.1#712002)