Chris Pitman created DROOLS-997:
-----------------------------------
Summary: 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
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)