[jboss-jira] [JBoss JIRA] (DROOLS-4358) line separators in CONDITION column in spreadsheet are escaped
Toshiya Kobayashi (Jira)
issues at jboss.org
Thu Jul 25 23:29:00 EDT 2019
[ https://issues.jboss.org/browse/DROOLS-4358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13763608#comment-13763608 ]
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)
More information about the jboss-jira
mailing list