in src/main/java/org/apache/commons/pool3/PoolUtils.java [440:463]
public void returnObject(final T obj) {
boolean discard = false;
final long nowMillis = System.currentTimeMillis();
synchronized (pool) {
if (factor.getNextShrink() < nowMillis) { // XXX: Pool 3: move test
// out of sync block
final int numIdle = pool.getNumIdle();
if (numIdle > 0) {
discard = true;
}
factor.update(nowMillis, numIdle);
}
}
try {
if (discard) {
pool.invalidateObject(obj);
} else {
pool.returnObject(obj);
}
} catch (final Exception ignored) {
// ignored
}
}