[jboss-jira] [JBoss JIRA] (DROOLS-4374) Compilation error for "from accumulate" init() with executable-model or not
Toshiya Kobayashi (Jira)
issues at jboss.org
Tue Jul 30 00:46:00 EDT 2019
Toshiya Kobayashi created DROOLS-4374:
-----------------------------------------
Summary: Compilation error for "from accumulate" init() with executable-model or not
Key: DROOLS-4374
URL: https://issues.jboss.org/browse/DROOLS-4374
Project: Drools
Issue Type: Bug
Components: core engine, executable model
Affects Versions: 7.24.0.Final
Reporter: Toshiya Kobayashi
Assignee: Mario Fusco
If we miss a semicolon in init() of "from accumulate",
for example)
{noformat}
import org.drools.modelcompiler.domain.Person;
rule R when
$sum : Integer() from accumulate (
Person( age > 18, $age : age ),
init( int sum = 0 ),
action( sum += $age; ),
reverse( sum -= $age; ),
result( sum )
)
then
insert($sum);
end
{noformat}
- Not executable-model
- The DRL is compiled and executed successfully
- Executable-model
- Throws ParseProblemException
{noformat}
com.github.javaparser.ParseProblemException: (line 1,col 12) Parse error. Found "}", expected one of "!=" "%" "%=" "&" "&&" "&=" "*" "*=" "+" "+=" "," "-" "-=" "->" "/" "/=" "::" ";" "<" "<<=" "<=" "=" "==" ">" ">=" ">>=" ">>>=" "?" "^" "^=" "instanceof" "|" "|=" "||"
Problem stacktrace :
com.github.javaparser.GeneratedJavaParser.generateParseException(GeneratedJavaParser.java:10567)
com.github.javaparser.GeneratedJavaParser.jj_consume_token(GeneratedJavaParser.java:10426)
com.github.javaparser.GeneratedJavaParser.BlockStatement(GeneratedJavaParser.java:3847)
com.github.javaparser.GeneratedJavaParser.Statements(GeneratedJavaParser.java:1644)
com.github.javaparser.GeneratedJavaParser.Block(GeneratedJavaParser.java:3822)
com.github.javaparser.GeneratedJavaParser.BlockParseStart(GeneratedJavaParser.java:5687)
com.github.javaparser.JavaParser.parse(JavaParser.java:115)
com.github.javaparser.JavaParser.parseBlock(JavaParser.java:309)
com.github.javaparser.StaticJavaParser.parseBlock(StaticJavaParser.java:240)
org.drools.modelcompiler.builder.generator.visitor.accumulate.AccumulateVisitor.visitAccInlineCustomCode(AccumulateVisitor.java:434)
...
{noformat}
I'm not very sure how it should be fixed. I filed this because of discrepancy between Executable-model and Not executable-model
Poosible choices are:
- Fail even in case of Not executable-model
- Success in case of Executable-model
Additonal Note: If we miss a semicolon in action(), a more understandable error message is thrown.
{noformat}
[Message [id=1, kieBase=defaultKieBase, level=ERROR, path=r0.drl, line=2, column=0
text=Rule Compilation error Syntax error, insert ":: IdentifierOrNew" to complete Expression
Syntax error, insert ";" to complete Statement]]
{noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the jboss-jira
mailing list