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

AccumulateNode runs into NPE

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • 5.2.0.M1
    • 5.1.1.FINAL
    • drools-core
    • None
    • Hide

      Notice that the initial pattern B(...) is essential for reproducing the issue, because it is this pattern terminating the match that triggers the NPE.

      Show
      Notice that the initial pattern B(...) is essential for reproducing the issue, because it is this pattern terminating the match that triggers the NPE.

    Description

      A rule such as
      rule "average"
      when
      B( id < 10 )
      $list: List() from collect ( A() over window:time(10s) )
      Number( $avg: doubleValue ) from accumulate( A( $id : id ) from $list, average( $id ) )
      then
      System.out.println( "average = " + $avg );
      end

      runs into a NPE

      Caused by: java.lang.NullPointerException
      at org.drools.reteoo.AccumulateNode.getFirstMatch(AccumulateNode.java:967)
      at org.drools.reteoo.AccumulateNode.splitList(AccumulateNode.java:920)
      at org.drools.reteoo.AccumulateNode.removePreviousMatchesForLeftTuple(AccumulateNode.java:874)
      at org.drools.reteoo.AccumulateNode.retractLeftTuple(AccumulateNode.java:205)
      at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateRetractLeftTuple(CompositeLeftTupleSinkAdapter.java:238)
      at org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateRetractLeftTupleDestroyRightTuple(CompositeLeftTupleSinkAdapter.java:138)
      at org.drools.reteoo.AccumulateNode.retractLeftTuple(AccumulateNode.java:212)
      at org.drools.reteoo.ModifyPreviousTuples.retractTuples(ModifyPreviousTuples.java:111)
      at org.drools.reteoo.EntryPointNode.modifyObject(EntryPointNode.java:176)
      at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:450)
      at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:361)
      at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:183)
      at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:196)
      at event.Rule_launch_0.defaultConsequence(Rule_launch_0.java:7)
      at event.Rule_launch_0DefaultConsequenceInvoker.evaluate(Rule_launch_0DefaultConsequenceInvoker.java:33)
      at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:913)

      A null Parameter accctx is passed down from retractLeftTuple.

      Attachments

        1. DroolsTest.java
          5 kB
        2. JB2887.zip
          7 kB
        3. SampleAlarmRules.drl
          5 kB

        Issue Links

          Activity

            People

              etirelli@redhat.com Edson Tirelli
              laune Wolfgang Laun (Inactive)
              Archiver:
              rhn-support-ceverson Clark Everson

              Dates

                Created:
                Updated:
                Resolved:
                Archived:

                PagerDuty