Expired event is not raised when modifying an expired entry
-----------------------------------------------------------
Key: ISPN-9511
URL:
https://issues.jboss.org/browse/ISPN-9511
Project: Infinispan
Issue Type: Bug
Components: Listeners
Affects Versions: 9.3.3.Final
Reporter: William Burns
Assignee: William Burns
Priority: Major
Fix For: 9.4.0.Final
Due to the old way of implementing remove expired for lifespan, we didn't raise an
expired event when writing to an entry. This was mostly to cause circular dependencies.
But with the new remove expired max idle changes, this is now possible.
Without this change listeners can be in an inconsistent state, possibly, as the following
could happen:
1. Entry is created
2. Listener is notified of creation
3. Entry expires (no event yet)
4. Entry is written to (created)
5. Listener is notified of creation.
In this case there is no intermediate state where the listener thought there was no
entry. This also becomes problematic if you are listening only for events that don't
include create.