added, corrected validation and test

pull/571/head
Nitin
parent 3095b6dc9e
commit bd3e570192

@ -597,6 +597,9 @@ public class HikariConfig implements HikariConfigMXBean
@Override @Override
public void setLeakDetectionThreshold(long leakDetectionThresholdMs) public void setLeakDetectionThreshold(long leakDetectionThresholdMs)
{ {
if (leakDetectionThresholdMs != 0 && leakDetectionThresholdMs < SECONDS.toMillis(2)) {
throw new IllegalArgumentException("leakDetectionThreshold cannot be less than 2000ms");
}
this.leakDetectionThreshold = leakDetectionThresholdMs; this.leakDetectionThreshold = leakDetectionThresholdMs;
} }
@ -611,6 +614,9 @@ public class HikariConfig implements HikariConfigMXBean
@Override @Override
public void setMaxLifetime(long maxLifetimeMs) public void setMaxLifetime(long maxLifetimeMs)
{ {
if (maxLifetimeMs != 0 && maxLifetimeMs < SECONDS.toMillis(30)) {
throw new IllegalArgumentException("maxLifetime cannot be less than 30000ms");
}
this.maxLifetime = maxLifetimeMs; this.maxLifetime = maxLifetimeMs;
} }
@ -642,8 +648,8 @@ public class HikariConfig implements HikariConfigMXBean
@Override @Override
public void setMinimumIdle(int minIdle) public void setMinimumIdle(int minIdle)
{ {
if (minIdle < 0) { if (minIdle < 0 || minIdle > maxPoolSize) {
throw new IllegalArgumentException("minimumIdle cannot be negative"); throw new IllegalArgumentException("minimumIdle cannot be negative or more than maximumPoolSize");
} }
this.minIdle = minIdle; this.minIdle = minIdle;
} }
@ -856,17 +862,16 @@ public class HikariConfig implements HikariConfigMXBean
LOGGER.warn("{} - connectionTimeout is more than maxLifetime, setting connectionTimeout to maxLifetime.", poolName); LOGGER.warn("{} - connectionTimeout is more than maxLifetime, setting connectionTimeout to maxLifetime.", poolName);
connectionTimeout = maxLifetime; connectionTimeout = maxLifetime;
} }
if (validationTimeout > connectionTimeout) {
LOGGER.warn("{} - validationTimeout is more than connectionTimeout, setting validationTimeout to connectionTimeout.", poolName);
validationTimeout = connectionTimeout;
}
} }
if (validationTimeout < 250) { if (validationTimeout < 250) {
LOGGER.warn("{} - validationTimeout is less than 250ms, setting to {}ms.", poolName, VALIDATION_TIMEOUT); LOGGER.warn("{} - validationTimeout is less than 250ms, setting to {}ms.", poolName, VALIDATION_TIMEOUT);
validationTimeout = VALIDATION_TIMEOUT; validationTimeout = VALIDATION_TIMEOUT;
} }
else if (validationTimeout > connectionTimeout) {
LOGGER.warn("{} - validationTimeout is more than connectionTimeout, setting validationTimeout to connectionTimeout.", poolName);
validationTimeout = connectionTimeout;
}
if (maxPoolSize < 0) { if (maxPoolSize < 0) {
if (minIdle < 0) { if (minIdle < 0) {

@ -118,6 +118,19 @@ public class TestValidation
} }
} }
@Test
public void validateInvalidValidationTimeout()
{
try {
HikariConfig config = new HikariConfig();
config.setValidationTimeout(10L);
Assert.fail();
}
catch (IllegalArgumentException ise) {
Assert.assertTrue(ise.getMessage().contains("validationTimeout cannot be less than 250ms"));
}
}
@Test @Test
public void validateInvalidIdleTimeout() public void validateInvalidIdleTimeout()
{ {

Loading…
Cancel
Save