-
Bug
-
Resolution: Done
-
Major
-
13.0.0.Final
-
None
CallInterceptor.visitRemoveExpiredCommand() assumes that entries expired in the store do not have a lifespan set:
// If the provided lifespan is null, that means it is a store removal command, so we can't compare lifespan
The comment is not completely correct: even on the node where purgeExpired did not remove the entry yet, RemoveExpiredCommand has flag SKIP_CACHE_LOAD set, so it can only find the entry in the data container. If the entry does not exist in the data container, the RemoveExpiredCommand fails, and the expiration listener is not invoked.
Thus changing a store to provide metadata, will cause failures the test ExpirationSingleFileStoreDistListenerFunctionalTest.testExpirationOfStoreWhenDataNotInMemory()