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

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical 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.

      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.

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

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

              Created:
              Updated:
              Resolved:
              Archived: