[jboss-jira] [JBoss JIRA] (DROOLS-997) Events that have already expired when inserted may trigger rules before expiring

Chris Pitman (JIRA) issues at jboss.org
Mon Jan 25 10:05:01 EST 2016


    [ https://issues.jboss.org/browse/DROOLS-997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13153159#comment-13153159 ] 

Chris Pitman commented on DROOLS-997:
-------------------------------------

Why should an expired event be evaluated "at least once"? This goes against the declarative nature of the rules. If I declare an event, and I also declare that an event should only be active for two hours after the time it occurs, then it is extremely *surprising* when a 3 hour old event is processed.

> Events that have already expired when inserted may trigger rules before expiring
> --------------------------------------------------------------------------------
>
>                 Key: DROOLS-997
>                 URL: https://issues.jboss.org/browse/DROOLS-997
>             Project: Drools
>          Issue Type: Bug
>          Components: core engine
>    Affects Versions: 6.1.0.Final
>         Environment: BRMS CEP 6.1.3 GA
>            Reporter: Chris Pitman
>            Assignee: Mario Fusco
>              Labels: fusion
>
> 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`:
> {code:java}
> long effectiveEnd = eventFactHandle.getEndTimestamp() + expirationOffset;
> long nextTimestamp = Math.max( insertionTime,
>                                     effectiveEnd >= 0 ? effectiveEnd : Long.MAX_VALUE );
>  if (nextTimestamp < workingMemory.getTimerService().getCurrentTime())
> {code}
> So if current time is still insertion time, the event is not expired.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list