Comment #867 Support network timeout even for Connection.isValid().

pull/876/head
Brett Wooldridge 8 years ago
parent e4871ee357
commit 9e9a97508c

@ -149,28 +149,30 @@ abstract class PoolBase
{
try {
try {
setNetworkTimeout(connection, validationTimeout);
final long validationSeconds = (int) Math.max(1000L, validationTimeout) / 1000;
if (isUseJdbc4Validation) {
return connection.isValid((int) MILLISECONDS.toSeconds(Math.max(1000L, validationTimeout)));
return connection.isValid((int) validationSeconds);
}
setNetworkTimeout(connection, validationTimeout);
try (Statement statement = connection.createStatement()) {
if (isNetworkTimeoutSupported != TRUE) {
setQueryTimeout(statement, (int) MILLISECONDS.toSeconds(Math.max(1000L, validationTimeout)));
setQueryTimeout(statement, (int) validationSeconds);
}
statement.execute(config.getConnectionTestQuery());
}
}
finally {
setNetworkTimeout(connection, networkTimeout);
if (isIsolateInternalQueries && !isAutoCommit) {
connection.rollback();
}
}
setNetworkTimeout(connection, networkTimeout);
return true;
}
catch (Exception e) {

Loading…
Cancel
Save