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

Events that have already expired when inserted may trigger rules before expiring

    XMLWordPrintable

Details

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

      Rapidly insert already expired events with a rule that logs any inserted event. There should be no logs.

      Show
      Rapidly insert already expired events with a rule that logs any inserted event. There should be no logs.
    • NEW
    • NEW

    Description

      Events that have already expired when they are inserted have their expiration times changed to the insertion time, which will not expire until the clock ticks at least once.

      Isee the following in `drools-core/src/main/java/org/drools/core/phreak/PropagationEntry.java`:

      long effectiveEnd = eventFactHandle.getEndTimestamp() + expirationOffset;
      long nextTimestamp = Math.max( insertionTime,
                                          effectiveEnd >= 0 ? effectiveEnd : Long.MAX_VALUE );
      
       if (nextTimestamp < workingMemory.getTimerService().getCurrentTime())
      

      So if current time is still insertion time, the event is not expired.

      Attachments

        Activity

          People

            mfusco@redhat.com Mario Fusco
            cpitman@redhat.com Christopher Pitman (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: