}
return e;
}
public void put(Object k, Object v, long lifespan, long maxIdle) {
InternalCacheEntry e = immortalEntries.get(k);
if (e != null) {
e.setValue(v);
if (lifespan > -1) e = e.setLifespan(lifespan);
if (maxIdle > -1) e = e.setMaxIdle(maxIdle);
if (e.canExpire()) {
immortalEntries.remove(k);
mortalEntries.put(k, e);
}
} else {
e = mortalEntries.get(k);
if (e != null) {
e.setValue(v);
InternalCacheEntry original = e;
e = e.setLifespan(lifespan).setMaxIdle(maxIdle);
if (!e.canExpire()) {
mortalEntries.remove(k);
immortalEntries.put(k, e);