Infinispan does not guarantee that an eviction will occur immediately on timeout, but instead uses a number of mechanisms to perform eviction:
a user thread asks for the entry and it is determined that the entry has expired; it will be removed from the cache at this point.
the entry is passivated/overflowed to disk but it is determined that the entry has expired; it will removed from the cache at this point.
an eviction maintenance thread kicks in and determines that the entry has been expired; it will removed from the cache at this point.
As the eviction is only guaranteed to happen some time later than the eviction timeout has elapsed, it has been decided that it is less surprising to not provide a callback than to provide a callback at this later point.