diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 1fd05bee..c4f7bd10 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -142,8 +142,8 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener fillPool(); + long delayPeriod = Long.getLong("com.zaxxer.hikari.housekeeping.periodMs", TimeUnit.SECONDS.toMillis(30L)); houseKeepingTimer = new Timer("Hikari Housekeeping Timer (pool " + configuration.getPoolName() + ")", true); - long delayPeriod = Long.getLong("com.zaxxer.hikari.housekeeping.period", TimeUnit.SECONDS.toMillis(30)); houseKeepingTimer.scheduleAtFixedRate(new HouseKeeper(), delayPeriod, delayPeriod); } @@ -311,7 +311,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener class AddConnection implements Runnable { public void run() { - long sleepBackoff = 200; + long sleepBackoff = 200L; final int maxPoolSize = configuration.getMaximumPoolSize(); final int minIdle = configuration.getMinimumIdle(); while (!isShutdown && totalConnections.get() < maxPoolSize && (minIdle == 0 || getIdleConnections() < minIdle)) @@ -577,10 +577,10 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener @Override public void run() { - connectionTimeout = configuration.getConnectionTimeout(); - logPoolState("Before cleanup "); - houseKeepingTimer.purge(); + + connectionTimeout = configuration.getConnectionTimeout(); // refresh member in case it changed + houseKeepingTimer.purge(); // purge cancelled timers final long now = System.currentTimeMillis(); final long idleTimeout = configuration.getIdleTimeout(); @@ -589,7 +589,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener { if (connectionBag.reserve(connectionProxy)) { - if ((idleTimeout > 0 && now > connectionProxy.getLastAccess() + idleTimeout) + if ((idleTimeout > 0L && now > connectionProxy.getLastAccess() + idleTimeout) || (now > connectionProxy.getExpirationTime())) { diff --git a/src/test/java/com/zaxxer/hikari/RampUpDown.java b/src/test/java/com/zaxxer/hikari/RampUpDown.java index 7d475076..4c0caa48 100644 --- a/src/test/java/com/zaxxer/hikari/RampUpDown.java +++ b/src/test/java/com/zaxxer/hikari/RampUpDown.java @@ -18,7 +18,7 @@ public class RampUpDown config.setConnectionTestQuery("VALUES 1"); config.setDataSourceClassName("com.zaxxer.hikari.mocks.StubDataSource"); - System.setProperty("com.zaxxer.hikari.housekeeping.period", "250"); + System.setProperty("com.zaxxer.hikari.housekeeping.periodMs", "250"); HikariDataSource ds = new HikariDataSource(config); ds.setIdleTimeout(1000); diff --git a/src/test/java/com/zaxxer/hikari/TestConnections.java b/src/test/java/com/zaxxer/hikari/TestConnections.java index 59f96c5f..4e1eb4b9 100644 --- a/src/test/java/com/zaxxer/hikari/TestConnections.java +++ b/src/test/java/com/zaxxer/hikari/TestConnections.java @@ -92,13 +92,13 @@ public class TestConnections config.setConnectionTestQuery("VALUES 1"); config.setDataSourceClassName("com.zaxxer.hikari.mocks.StubDataSource"); - System.setProperty("com.zaxxer.hikari.housekeeping.period", "100"); + System.setProperty("com.zaxxer.hikari.housekeeping.periodMs", "100"); HikariDataSource ds = new HikariDataSource(config); try { - System.clearProperty("com.zaxxer.hikari.housekeeping.period"); + System.clearProperty("com.zaxxer.hikari.housekeeping.periodMs"); ds.setMaxLifetime(700);