bug fixed for keepAlive

This commit is contained in:
shaojin.wensj
2019-02-22 17:57:00 +08:00
parent ae15e0c590
commit acf740f5b2
@@ -129,7 +129,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
private volatile DruidConnectionHolder[] connections;
private int poolingCount = 0;
private int activeCount = 0;
private long discardCount = 0;
private volatile long discardCount = 0;
private int notEmptyWaitThreadCount = 0;
private int notEmptyWaitThreadPeak = 0;
//
@@ -2920,15 +2920,28 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
// skip
}
boolean discard = !validate;
if (validate) {
holer.lastActiveTimeMillis = System.currentTimeMillis();
put(holer);
} else {
boolean putOk = put(holer);
if (!putOk) {
discard = true;
}
}
if (discard) {
try {
connection.close();
} catch (Exception e) {
// skip
}
lock.lock();
try {
discardCount++;
} finally {
lock.unlock();
}
}
}
Arrays.fill(keepAliveConnections, null);