Handle case where connectionTimeout or validationTimeout are set by HikariConfigMBean (after the validateNumerics() method has already been called), ensure validationTimeout stays sane.

pull/333/head
Brett Wooldridge 10 years ago
parent 4cb8d4d7d8
commit a9aa10095f

@ -226,6 +226,10 @@ public class HikariConfig implements HikariConfigMBean
else { else {
this.connectionTimeout = connectionTimeoutMs; this.connectionTimeout = connectionTimeoutMs;
} }
if (validationTimeout > connectionTimeoutMs && connectionTimeoutMs > 0) {
this.validationTimeout = connectionTimeoutMs;
}
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
@ -245,7 +249,11 @@ public class HikariConfig implements HikariConfigMBean
else { else {
this.validationTimeout = validationTimeoutMs; this.validationTimeout = validationTimeoutMs;
} }
}
if (validationTimeout > connectionTimeout) {
this.validationTimeout = connectionTimeout;
}
}
/** /**
* Get the {@link DataSource} that has been explicitly specified to be wrapped by the * Get the {@link DataSource} that has been explicitly specified to be wrapped by the
@ -762,8 +770,7 @@ public class HikariConfig implements HikariConfigMBean
{ {
Logger logger = LoggerFactory.getLogger(getClass()); Logger logger = LoggerFactory.getLogger(getClass());
if (validationTimeout > connectionTimeout && connectionTimeout != 0) { if (validationTimeout > connectionTimeout && connectionTimeout != Integer.MAX_VALUE) {
logger.warn("validationTimeout is greater than connectionTimeout, setting to connectionTimeout.");
validationTimeout = connectionTimeout; validationTimeout = connectionTimeout;
} }

Loading…
Cancel
Save