From a9aa10095f95458a5fe92ed402f34e72381eb442 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 17 Jun 2015 17:31:14 +0900 Subject: [PATCH] Handle case where connectionTimeout or validationTimeout are set by HikariConfigMBean (after the validateNumerics() method has already been called), ensure validationTimeout stays sane. --- src/main/java/com/zaxxer/hikari/HikariConfig.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/HikariConfig.java b/src/main/java/com/zaxxer/hikari/HikariConfig.java index 77c27dcc..8269308b 100644 --- a/src/main/java/com/zaxxer/hikari/HikariConfig.java +++ b/src/main/java/com/zaxxer/hikari/HikariConfig.java @@ -226,6 +226,10 @@ public class HikariConfig implements HikariConfigMBean else { this.connectionTimeout = connectionTimeoutMs; } + + if (validationTimeout > connectionTimeoutMs && connectionTimeoutMs > 0) { + this.validationTimeout = connectionTimeoutMs; + } } /** {@inheritDoc} */ @@ -245,7 +249,11 @@ public class HikariConfig implements HikariConfigMBean else { this.validationTimeout = validationTimeoutMs; } - } + + if (validationTimeout > connectionTimeout) { + this.validationTimeout = connectionTimeout; + } +} /** * 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()); - if (validationTimeout > connectionTimeout && connectionTimeout != 0) { - logger.warn("validationTimeout is greater than connectionTimeout, setting to connectionTimeout."); + if (validationTimeout > connectionTimeout && connectionTimeout != Integer.MAX_VALUE) { validationTimeout = connectionTimeout; }