looks like we still have some work to do in validating types/fields as the
parser builds up the AST (which will provide friendly errors).

On 12/7/06, Dirk Bergstrom <[EMAIL PROTECTED]> wrote:

Trying to compile this rule, I get an NPE:

package foo;
rule "Generates NPE"
  when
    $count : Thing( size > 0 ) from collect( Gizmo( length == 1 ) )
  then
    System.out.println("boo");
end

Like so:

java.lang.NullPointerException
at org.drools.rule.Rule.addDeclarations(Rule.java:316)
at org.drools.rule.Rule.addPattern(Rule.java:304)
at org.drools.semantics.java.RuleBuilder.build(RuleBuilder.java:320)
at org.drools.semantics.java.RuleBuilder.build(RuleBuilder.java:215)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:366)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:215)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(
PackageBuilder.java:181)
at net.juniper.dash.DroolsTest.readRule(DroolsTest.java:106)
at net.juniper.dash.DroolsTest.main(DroolsTest.java:22)

This happens when there are two undefined classes referenced in a rule,
with the
second one inside a collect() statement.  If I import Thing, or import
Gizmo, or
have a constraint on Gizmo not in a collect(), I get a parser exception,
as
expected.

This is with Trunk, revision 8110.

--
Dirk Bergstrom               [EMAIL PROTECTED]
_____________________________________________
Juniper Networks Inc.,          Computer Geek
Tel: 408.745.3182           Fax: 408.745.8905

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to