@Override protected CacheItem trimLru(long currentTime) { LruCacheItem trimItem = tail; if (tail != head) { tail = trimItem.getLPrev(); if (tail == null) { _logger.log(Level.WARNING, TRIM_LRU_RESETTING_HEAD_AND_TAIL, cacheName); // do not let the tail go past the head tail = head = null; } else { tail.setLNext(null); } } else { tail = head = null; } if (trimItem != null) { trimItem.setTrimmed(true); trimItem.setLPrev(null); trimCount++; listSize--; } return trimItem; }