Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-981

when I update the stateful rule, the rule is not be actived

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 6.3.0.Final
    • core engine
    • Hide

      public static class TestListener implements RuleRuntimeEventListener
      {

      /**

      • @param arg0
        */
        @Override
        public void objectDeleted(ObjectDeletedEvent arg0) { System.out.println("objectDeleted" + " " + System.currentTimeMillis() + " " + arg0.getOldObject()); }

      /**

      • @param arg0
        */
        @Override
        public void objectInserted(ObjectInsertedEvent arg0) { System.out.println("objectInserted" + " " + System.currentTimeMillis() + " " + arg0.getObject()); }

      /**

      • @param arg0
        */
        @Override
        public void objectUpdated(ObjectUpdatedEvent arg0) { System.out.println("objectUpdated" + " " + System.currentTimeMillis() + " " + arg0.getObject()); Object obj = arg0.getObject(); }

        }

      ----------------------------------------------------------------
      TestListener listener = new TestListener();
      session.addEventListener(listener);

      Show
      public static class TestListener implements RuleRuntimeEventListener { /** @param arg0 */ @Override public void objectDeleted(ObjectDeletedEvent arg0) { System.out.println("objectDeleted" + " " + System.currentTimeMillis() + " " + arg0.getOldObject()); } /** @param arg0 */ @Override public void objectInserted(ObjectInsertedEvent arg0) { System.out.println("objectInserted" + " " + System.currentTimeMillis() + " " + arg0.getObject()); } /** @param arg0 */ @Override public void objectUpdated(ObjectUpdatedEvent arg0) { System.out.println("objectUpdated" + " " + System.currentTimeMillis() + " " + arg0.getObject()); Object obj = arg0.getObject(); } } ---------------------------------------------------------------- TestListener listener = new TestListener(); session.addEventListener(listener);
    • NEW
    • NEW

      this issue is due to[ https://issues.jboss.org/browse/DROOLS-978]. I modified the source(NodeTypeEnums.java:Line 88):add if node is null, then return false.
      there is no NPE, but I find that the updated rule is not be actived by adding the listener on the session.

      So, I want to know whether my test case is not correct? or the drools does not support the stateful rule's update? or this is the drools's bug?

      but If i modify the org.drools.core.reteoo.TimerNode like this:
      public void setNodePosMaskBit(long segmentPos)

      { // this.nodePosMaskBit = segmentPos; this.nodePosMaskBit = 1; }

      then the rule will be actived, but i dont know whether this can cause other questions.

      Thanks!

              mfusco@redhat.com Mario Fusco
              muyuqiu001 bing yang (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: