Q:

Retrieving expired objects in Ehcache

I'd like to implement the following algorythm above Ehcache :

try to get an element from the cache
if the element is not expired

serve the value

else

serve the expired value
refresh the element in the background

But I never get an expired element (Element.isExpired()).  I tried to play with my cache configuration (especially TimeToLive and TimeToIdle) but I cant seem to get it to work as I want.  I can list the keys in the cache, but if I "get()" an expired element, I always get a null. 
What am I doing wrong ? 

A:

You're not doing anything wrong.   The documentation says that getting an expired element will remove it from the cache and return null. 
I suspect the only time an element will come up as expired is if you have an event listener listenings for element expiry events but I can't say I've ever tested this.