DruidDataSource support failFast

This commit is contained in:
高铁
2016-02-03 09:56:12 +08:00
parent 1554d2bce6
commit 1b596f85c5
3 changed files with 22 additions and 7 deletions
@@ -1454,6 +1454,10 @@ public class DruidDataSource extends DruidAbstractDataSource
}
DruidConnectionHolder takeLast() throws InterruptedException, SQLException {
if (failFast && createError != null) {
throw new DataSourceNotAvailableException(createError);
}
try {
while (poolingCount == 0) {
if (failFast && createError != null) {
@@ -1494,11 +1498,11 @@ public class DruidDataSource extends DruidAbstractDataSource
long estimate = nanos;
for (;;) {
if (failFast && createError != null) {
throw new DataSourceNotAvailableException(createError);
}
if (poolingCount == 0) {
if (failFast && createError != null) {
throw new DataSourceNotAvailableException(createError);
}
emptySignal(); // send signal to CreateThread create connection
if (estimate <= 0) {