Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-579

NPE when imports not available

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 3.1-m1
    • 3.1-m1
    • None
    • None

    Description

      REPORTED BY DIRK BERGSTROM:
      ------------------------------------------------

      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.

      Attachments

        Activity

          People

            etirelli@redhat.com Edson Tirelli
            etirelli@redhat.com Edson Tirelli
            Archiver:
            rhn-support-ceverson Clark Everson

            Dates

              Created:
              Updated:
              Resolved:
              Archived:

              PagerDuty