private void fetchNext() {
long currentTimeMillis = -1; //lazily look at the wall clock: we want to look no more than once, but not at all if all entries are immortal.
while (it.hasNext()) {
InternalCacheEntry e = it.next();
if (e.canExpire()) {
if (currentTimeMillis == -1) currentTimeMillis = timeService.wallClockTime();
if (! e.isExpired(currentTimeMillis)) {
next = e;
return;
}