Content deleted Content added
mNo edit summary |
m Java code example: fixed methods visibility, case in getObject() when all available PooledObjects have expired and removed unnecessary cleaning of objects returned from the available map (which only has clean objects) |
||
Line 187:
public synchronized static PooledObject getObject() {
long now = System.currentTimeMillis();
if (!available.isEmpty()) {
PooledObject po = new PooledObject();▼
push(inUse, po, now);▼
return po;▼
for (Map.Entry<PooledObject, Long> entry : available.entrySet()) {
if (now - entry.getValue() > expTime) { //object has expired
Line 198 ⟶ 193:
} else {
PooledObject po = popElement(available, entry.getKey());
push(inUse, po, now);
return po;
Line 204 ⟶ 198:
}
}
// either no PooledObject is available or each has expired, so return a new one
}▼
return createPooledObject(now);
▲ }
private synchronized static PooledObject createPooledObject(long now) {
}
private synchronized static void push(HashMap<PooledObject, Long> map,
PooledObject po, long now) {
Line 218 ⟶ 220:
}
Map.Entry<PooledObject, Long> entry = map.entrySet().iterator().next();
PooledObject key= entry.getKey();
Line 224 ⟶ 226:
map.remove(entry.getKey());
return key;
}
map.remove(key);
return key;
}
Line 238:
po.setTemp3(null);
}
}
|