[jboss-jira] [JBoss JIRA] Commented: (JBRULES-1826) illegal group reference while try to compile rule

Edson Tirelli (JIRA) jira-events at lists.jboss.org
Wed Apr 8 20:39:22 EDT 2009


    [ https://jira.jboss.org/jira/browse/JBRULES-1826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12461350#action_12461350 ] 

Edson Tirelli commented on JBRULES-1826:
----------------------------------------

Did you tried to escape the {}? The new DSL parser is much more robust and strict. It interprets anything inside non escaped {} as a variable name.

Try the following:

[consequence][]log an error "{errorCode}"= String[] errorMessage = \{$name\}; errorlist.add( new UWError("{errorCode}",$driverKey, errorMessage) ); 

[]s
Edson

> illegal group reference while try to compile rule 
> --------------------------------------------------
>
>                 Key: JBRULES-1826
>                 URL: https://jira.jboss.org/jira/browse/JBRULES-1826
>             Project: JBoss Drools
>          Issue Type: Release
>      Security Level: Public(Everyone can see) 
>          Components: drools-compiler
>    Affects Versions:  5.0.0.M2
>         Environment: WINDOWS XP
>            Reporter: jey paulraj
>            Assignee: Edson Tirelli
>             Fix For: 5.0.0.GA
>
>
> I am getting the following error when I try to compile the rule using Drools compiler .5.0.0 MR2 jar. I am able to compile the same rule using Drools compiler 4.0.7.
> java.lang.IllegalArgumentException: Illegal group reference
> 	at java.util.regex.Matcher.appendReplacement(Matcher.java:722)
> 	at java.util.regex.Matcher.replaceAll(Matcher.java:822)
> 	at org.drools.lang.dsl.DefaultExpander.expandRHS(DefaultExpander.java:303)
> 	at org.drools.lang.dsl.DefaultExpander.expandConstructions(DefaultExpander.java:143)
> 	at org.drools.lang.dsl.DefaultExpander.expand(DefaultExpander.java:114)
> 	at org.drools.compiler.DrlParser.parse(DrlParser.java:110)
> 	at org.drools.compiler.DrlParser.parse(DrlParser.java:119)
> 	at org.drools.compiler.DrlParser.parse(DrlParser.java:92)
> 	at org.drools.compiler.DrlParser.parse(DrlParser.java:86)
> 	at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:297)
> Here is the rules 
> drl
> global java.util.List errorlist;
> rule "excluded driver rule for ALL state"
> 	#include attributes such as "salience" here...
> 	when
> 		#conditions
> 		Excluded driver is present and check relationship code is valids for the look up type 4
> 	then
> 		#actions
> 		log an error "UWED1001"
> end
> dsl
> [consequence][]log an error "{errorCode}"= String[] errorMessage = {$name}; errorlist.add( new UWError("{errorCode}",$driverKey, errorMessage) );
> [condition][] Excluded driver is present and check relationship code is valids for the look up type {TYPECODE} = ExcludedDriverDomain( $driverKey : driverKey , $name : driverName, $relationship : excludedDriverRelationshipToInsured ) PolicyLookupDataObject( type == {TYPECODE} , codeValues excludes $relationship )

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list