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

request to improve upon error message received from invalid rule syntax (currently getting NPE)

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

    XMLWordPrintable

Details

    Description

      My (albeit improper) rule syntax that caused the NPE error:

      when
      QueueList ( queueIds contains 1 )
      ( not EventList ( events contains 1 )

      ( $eventList : EventList ( events contains 1 )
      && RfEvent ( eventTypeId == 1, lastActivationLong after[-1h] sessionTime ) from $eventList.events ) )
      then
      modify (eventList) { add(1) }

      Stack Trace:

      org.drools.runtime.rule.ConsequenceException: java.lang.NullPointerException
      at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:23)
      at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:943)
      at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)
      at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1086)
      at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:660)
      at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:627)
      at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:183)
      at com.famc.service.RuleFlowRunner.main(RuleFlowRunner.java:118)
      Caused by: java.lang.NullPointerException
      at org.drools.base.mvel.DroolsMVELFactory.getTupleObjectFor(DroolsMVELFactory.java:182)
      at org.drools.base.mvel.DroolsMVELFactory.setContext(DroolsMVELFactory.java:176)
      at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:57)
      at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:934)
      ... 6 more

      Request for ticket:

      [10:19] <etirelli> jary: raising a NPE is clearly a bug, but the reason is that you have modify(eventList) instead of modify($eventList)... in any case, the way you authored the rule is not ideal
      [10:19] <etirelli> jary: could you please open a JIRA so that we can provide an appropriate error message, please?

      Attachments

        Activity

          People

            etirelli@redhat.com Edson Tirelli
            jary_jira Jeremy Ary (Inactive)
            Archiver:
            rhn-support-ceverson Clark Everson

            Dates

              Created:
              Updated:
              Resolved:
              Archived:

              PagerDuty