<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Drools 3.1.0-M1 rules build 3.0.4 compatibility problems with eval statements</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">We are in the process of converting from 3.0.4 to 3.1.0-M1 and having problems building rules that have eval statements in them that buil</FONT><FONT SIZE=2 FACE="Arial">d</FONT><FONT SIZE=2 FACE="Arial"> in 3.0.4 with no problems.</FONT></SPAN></P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">We are getting rules build errors as follows:</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] Feb 28, 2007 5:55:29 PM com.nortel.connect.rbuilder.RulePackager build</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] INFO: ============== Start build RulePackage: [engrules.mss] =========</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] Feb 28, 2007 5:55:29 PM com.nortel.connect.rbuilder.RulePackage addRulesFromDrlFile</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] INFO:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adding Rules from: MG15000Rules.drl (with associated DSL)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] Feb 28, 2007 5:55:29 PM com.nortel.connect.rbuilder.RulePackage addRulesFromDrlFile</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] INFO:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parsed rules using dsl</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;<B> </B></FONT><B><FONT COLOR="#FF0000" SIZE=2 FACE="Arial">[java] org.drools.RuntimeDroolsException: unable to find the function ','</FONT></B></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.StaticMethodFunctionResolver.resolveFunction(StaticMethodFunctionResolver.java:9)</FONT></SPAN></P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.FunctionFixer.fix(FunctionFixer.java:132)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.FunctionFixer.fix(FunctionFixer.java:103)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.FunctionFixer.fix(FunctionFixer.java:66)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.builder.EvalBuilder.build(EvalBuilder.java:78)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.builder.GroupElementBuilder.build(GroupElementBuilder.java:63)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.builder.GroupElementBuilder.build(GroupElementBuilder.java:63)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.semantics.java.RuleBuilder.build(RuleBuilder.java:178)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:381)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:219)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at com.nortel.connect.rbuilder.RulePackage.addRulesFromDrlFile(RulePackage.java:229)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at com.nortel.connect.rbuilder.RulePackager.build(RulePackager.java:206)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at com.nortel.connect.rbuilder.RulePackager.buildAll(RulePackager.java:142)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java]&nbsp;&nbsp;&nbsp;&nbsp; at com.nortel.connect.rbuilder.RulePackager.main(RulePackager.java:92)</FONT></SPAN>

<BR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp; [java] Feb 28, 2007 5:55:30 PM com.nortel.connect.rbuilder.RulePackage addRulesFromDrlFile</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">We have a number of rules with eval's in them such as:</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">eval( !(checkVspToInstanceRatio( (Integer)$vsp3ocount, (Integer)$vsp4ecount, (Integer)$vsp3count, (Integer)$nstacount)) );</FONT></SPAN></P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">eval ( !(strInStr((String)$shelfsn,(String)$netwksn))</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">eval( !(checkDlepNumber( (Integer)$dlepkey, (Integer)$nstakey)) || !(isEvenInteger((Integer)$nstakey))</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">The parser has issue with the cast syntax in the eval removing the cast (like (Integer) ) cleans up the paser issue however this is not a feasible solution. Casting is required in some cases with out adding a good bit of extra work.</FONT></SPAN></P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Can you restore the support we previously had for casting with in an eval and retain the flexibility of using casts when needed?</FONT></SPAN></P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Thanks,</FONT></SPAN>
</P>
<BR>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Regards,</FONT></SPAN>
</P>

<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Tom G</FONT></SPAN>
</P>
<BR>
<BR>
<BR>
<BR>
<BR>

</BODY>
</HTML>