yurloc opened a new issue, #5920:
URL: https://github.com/apache/incubator-kie-drools/issues/5920
## Parent issue
- #5678
## Failing tests
- `org.drools.mvel.integrationtests.StrictAnnotationTest#*`
## Notes
The strict parser (`LanguageLevelOption.DRL6_STRICT`) allows strongly typed
and prefix annotations. Should the new parser support that as well?
## Rule code snippet
```
rule R1 when
@Watch( "!value" ) $m : MyClass( value < 10 )
then
modify( $m ) { setValue( $m.getValue()+1 ) };
end
```
## Error output
```
### parse : ANTLR4_PARSER_ENABLED = true
line 4:4 mismatched input '@' expecting {'unit', 'function', 'global',
'declare', 'trait', 'rule', 'query', 'when', 'then', 'end', 'and', 'or',
'exists', 'not', 'in', 'from', 'collect', 'accumulate', 'acc', 'init',
'action', 'reverse', 'result', 'entry-point', 'eval', 'forall', 'over',
'groupby', 'matches', 'memberOf', 'contains', 'excludes', 'soundslike', 'str',
'after', 'before', 'coincides', 'during', 'includes', 'finishes', 'finishedby',
'meets', 'metby', 'overlaps', 'overlappedby', 'starts', 'startedby', 'window',
'salience', 'enabled', 'no-loop', 'auto-focus', 'lock-on-active', 'refract',
'direct', 'agenda-group', 'activation-group', 'ruleflow-group',
'date-effective', 'date-expires', 'dialect', 'calendars', 'timer', 'duration',
'?/', 'default', 'if', 'this', 'module', 'open', 'requires', 'exports',
'opens', 'to', 'uses', 'provides', 'with', 'transitive', 'var', 'yield',
'record', 'sealed', 'permits', '(', '?', '/', IDENTIFIER}
14:50:47.060 [main] ERROR o.d.d.parser.antlr4.DRLParserWrapper.parse:77 -
Exception while creating PackageDescr
java.lang.NullPointerException: Cannot read field "start" because "ctx" is
null
at
org.drools.drl.parser.antlr4.Antlr4ParserStringUtils.getTokenTextPreservingWhitespace(Antlr4ParserStringUtils.java:65)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitRuledef(DRLVisitorImpl.java:362)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitRuledef(DRLVisitorImpl.java:83)
at
org.drools.drl.parser.antlr4.DRLParser$RuledefContext.accept(DRLParser.java:1664)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1075)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDrlStatementdef(DRLVisitorImpl.java:166)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDrlStatementdef(DRLVisitorImpl.java:83)
at
org.drools.drl.parser.antlr4.DRLParser$DrlStatementdefContext.accept(DRLParser.java:523)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1075)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitCompilationUnit(DRLVisitorImpl.java:102)
at
org.drools.drl.parser.antlr4.DRLVisitorImpl.visitCompilationUnit(DRLVisitorImpl.java:83)
at
org.drools.drl.parser.antlr4.DRLParser$CompilationUnitContext.accept(DRLParser.java:435)
at
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
at
org.drools.drl.parser.antlr4.DRLParserHelper.compilationUnitContext2PackageDescr(DRLParserHelper.java:91)
at
org.drools.drl.parser.antlr4.DRLParserWrapper.parse(DRLParserWrapper.java:75)
at
org.drools.drl.parser.antlr4.DRLParserWrapper.parse(DRLParserWrapper.java:55)
at org.drools.drl.parser.DrlParser.lambda$parse$2(DrlParser.java:191)
at
org.drools.drl.parser.DrlParser.compileWithAntlr4Parser(DrlParser.java:204)
at org.drools.drl.parser.DrlParser.parse(DrlParser.java:191)
at org.drools.drl.parser.DrlParser.parse(DrlParser.java:179)
at org.drools.drl.parser.DrlParser.parse(DrlParser.java:168)
at
org.drools.compiler.builder.impl.resources.DrlResourceHandler.process(DrlResourceHandler.java:55)
at
org.drools.compiler.builder.impl.PackageDescrBuilder.buildResource(PackageDescrBuilder.java:73)
at
org.drools.compiler.builder.impl.PackageDescrBuilder.build(PackageDescrBuilder.java:51)
at
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackageDescr(CompositeKnowledgeBuilderImpl.java:173)
at
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:116)
at
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:109)
at
org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:274)
at
org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:220)
at
org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:84)
at
org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:285)
at
org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:251)
at
org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:208)
at
org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:149)
at
org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:134)
at
org.drools.testcoverage.common.util.KieUtil.buildAndInstallKieModuleIntoRepo(KieUtil.java:78)
at
org.drools.testcoverage.common.util.KieUtil.buildAndInstallKieModuleIntoRepo(KieUtil.java:72)
at
org.drools.testcoverage.common.util.KieUtil.getKieModuleFromResources(KieUtil.java:249)
at
org.drools.testcoverage.common.util.KieBaseUtil.getKieBaseFromKieModuleFromResources(KieBaseUtil.java:108)
at
org.drools.testcoverage.common.util.KieBaseUtil.getKieBaseFromKieModuleFromDrl(KieBaseUtil.java:121)
at
org.drools.mvel.integrationtests.StrictAnnotationTest.testWatch(StrictAnnotationTest.java:170)
14:50:47.061 [main] ERROR
o.d.c.k.b.impl.AbstractKieProject.buildKnowledgePackages:280 - Unable to build
KieBaseModel:KieBaseModelName
[4,4]: mismatched input '@' expecting {'unit', 'function', 'global',
'declare', 'trait', 'rule', 'query', 'when', 'then', 'end', 'and', 'or',
'exists', 'not', 'in', 'from', 'collect', 'accumulate', 'acc', 'init',
'action', 'reverse', 'result', 'entry-point', 'eval', 'forall', 'over',
'groupby', 'matches', 'memberOf', 'contains', 'excludes', 'soundslike', 'str',
'after', 'before', 'coincides', 'during', 'includes', 'finishes', 'finishedby',
'meets', 'metby', 'overlaps', 'overlappedby', 'starts', 'startedby', 'window',
'salience', 'enabled', 'no-loop', 'auto-focus', 'lock-on-active', 'refract',
'direct', 'agenda-group', 'activation-group', 'ruleflow-group',
'date-effective', 'date-expires', 'dialect', 'calendars', 'timer', 'duration',
'?/', 'default', 'if', 'this', 'module', 'open', 'requires', 'exports',
'opens', 'to', 'uses', 'provides', 'with', 'transitive', 'var', 'yield',
'record', 'sealed', 'permits', '(', '?', '/', IDENTIFIER}
[0,0]:
[0,0]: Parser returned a null Package
14:50:47.061 [main] ERROR
o.d.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem:165 -
KieBuilder errors: [Message [id=1, kieBase=KieBaseModelName, level=ERROR,
path=rules1.drl, line=4, column=0
text=mismatched input '@' expecting {'unit', 'function', 'global',
'declare', 'trait', 'rule', 'query', 'when', 'then', 'end', 'and', 'or',
'exists', 'not', 'in', 'from', 'collect', 'accumulate', 'acc', 'init',
'action', 'reverse', 'result', 'entry-point', 'eval', 'forall', 'over',
'groupby', 'matches', 'memberOf', 'contains', 'excludes', 'soundslike', 'str',
'after', 'before', 'coincides', 'during', 'includes', 'finishes', 'finishedby',
'meets', 'metby', 'overlaps', 'overlappedby', 'starts', 'startedby', 'window',
'salience', 'enabled', 'no-loop', 'auto-focus', 'lock-on-active', 'refract',
'direct', 'agenda-group', 'activation-group', 'ruleflow-group',
'date-effective', 'date-expires', 'dialect', 'calendars', 'timer', 'duration',
'?/', 'default', 'if', 'this', 'module', 'open', 'requires', 'exports',
'opens', 'to', 'uses', 'provides', 'with', 'transitive', 'var', 'yield',
'record', 'sealed', 'permits', '(', '?', '/', IDENTIFIER}], Message [id=2,
kieBase=KieBaseModelName, level
=ERROR, path=rules1.drl, line=0, column=0
text=], Message [id=3, kieBase=KieBaseModelName, level=ERROR,
path=rules1.drl, line=0, column=0
text=Parser returned a null Package]]
java.lang.AssertionError: [[Message [id=1, kieBase=KieBaseModelName,
level=ERROR, path=rules1.drl, line=4, column=0
text=mismatched input '@' expecting {'unit', 'function', 'global',
'declare', 'trait', 'rule', 'query', 'when', 'then', 'end', 'and', 'or',
'exists', 'not', 'in', 'from', 'collect', 'accumulate', 'acc', 'init',
'action', 'reverse', 'result', 'entry-point', 'eval', 'forall', 'over',
'groupby', 'matches', 'memberOf', 'contains', 'excludes', 'soundslike', 'str',
'after', 'before', 'coincides', 'during', 'includes', 'finishes', 'finishedby',
'meets', 'metby', 'overlaps', 'overlappedby', 'starts', 'startedby', 'window',
'salience', 'enabled', 'no-loop', 'auto-focus', 'lock-on-active', 'refract',
'direct', 'agenda-group', 'activation-group', 'ruleflow-group',
'date-effective', 'date-expires', 'dialect', 'calendars', 'timer', 'duration',
'?/', 'default', 'if', 'this', 'module', 'open', 'requires', 'exports',
'opens', 'to', 'uses', 'provides', 'with', 'transitive', 'var', 'yield',
'record', 'sealed', 'permits', '(', '?', '/', IDENTIFIER}], Message [id=2,
kieBase=KieBaseModelName, level
=ERROR, path=rules1.drl, line=0, column=0
text=], Message [id=3, kieBase=KieBaseModelName, level=ERROR,
path=rules1.drl, line=0, column=0
text=Parser returned a null Package]]]
Expecting empty but was: [Message [id=1, kieBase=KieBaseModelName,
level=ERROR, path=rules1.drl, line=4, column=0
text=mismatched input '@' expecting {'unit', 'function', 'global',
'declare', 'trait', 'rule', 'query', 'when', 'then', 'end', 'and', 'or',
'exists', 'not', 'in', 'from', 'collect', 'accumulate', 'acc', 'init',
'action', 'reverse', 'result', 'entry-point', 'eval', 'forall', 'over',
'groupby', 'matches', 'memberOf', 'contains', 'excludes', 'soundslike', 'str',
'after', 'before', 'coincides', 'during', 'includes', 'finishes', 'finishedby',
'meets', 'metby', 'overlaps', 'overlappedby', 'starts', 'startedby', 'window',
'salience', 'enabled', 'no-loop', 'auto-focus', 'lock-on-active', 'refract',
'direct', 'agenda-group', 'activation-group', 'ruleflow-group',
'date-effective', 'date-expires', 'dialect', 'calendars', 'timer', 'duration',
'?/', 'default', 'if', 'this', 'module', 'open', 'requires', 'exports',
'opens', 'to', 'uses', 'provides', 'with', 'transitive', 'var', 'yield',
'record', 'sealed', 'permits', '(', '?', '/', IDENTIFIER}],
Message [id=2, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl,
line=0, column=0
text=],
Message [id=3, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl,
line=0, column=0
text=Parser returned a null Package]]
at
org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:169)
at
org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:134)
at
org.drools.testcoverage.common.util.KieUtil.buildAndInstallKieModuleIntoRepo(KieUtil.java:78)
at
org.drools.testcoverage.common.util.KieUtil.buildAndInstallKieModuleIntoRepo(KieUtil.java:72)
at
org.drools.testcoverage.common.util.KieUtil.getKieModuleFromResources(KieUtil.java:249)
at
org.drools.testcoverage.common.util.KieBaseUtil.getKieBaseFromKieModuleFromResources(KieBaseUtil.java:108)
at
org.drools.testcoverage.common.util.KieBaseUtil.getKieBaseFromKieModuleFromDrl(KieBaseUtil.java:121)
at
org.drools.mvel.integrationtests.StrictAnnotationTest.testWatch(StrictAnnotationTest.java:170)
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]