diff --git a/hikaricp-common/src/main/java/com/zaxxer/hikari/pool/BaseHikariPool.java b/hikaricp-common/src/main/java/com/zaxxer/hikari/pool/BaseHikariPool.java index b3076097..f67fe622 100644 --- a/hikaricp-common/src/main/java/com/zaxxer/hikari/pool/BaseHikariPool.java +++ b/hikaricp-common/src/main/java/com/zaxxer/hikari/pool/BaseHikariPool.java @@ -57,7 +57,6 @@ import com.zaxxer.hikari.proxy.ProxyFactory; import com.zaxxer.hikari.util.ConcurrentBag; import com.zaxxer.hikari.util.DefaultThreadFactory; import com.zaxxer.hikari.util.IBagStateListener; -import com.zaxxer.hikari.util.LeakTask; /** * This is the primary connection pool class that provides the basic @@ -212,7 +211,7 @@ public abstract class BaseHikariPool implements HikariPoolMBean, IBagStateListen else { metricsContext.setConnectionLastOpen(bagEntry, now); metricsContext.stop(); - return ProxyFactory.getProxyConnection((HikariPool) this, bagEntry, leakTask.start(bagEntry.connection)); + return ProxyFactory.getProxyConnection((HikariPool) this, bagEntry, leakTask.start(bagEntry)); } } while (timeout > 0L); diff --git a/hikaricp-common/src/main/java/com/zaxxer/hikari/util/LeakTask.java b/hikaricp-common/src/main/java/com/zaxxer/hikari/pool/LeakTask.java similarity index 85% rename from hikaricp-common/src/main/java/com/zaxxer/hikari/util/LeakTask.java rename to hikaricp-common/src/main/java/com/zaxxer/hikari/pool/LeakTask.java index 3eb14926..53b1304e 100644 --- a/hikaricp-common/src/main/java/com/zaxxer/hikari/util/LeakTask.java +++ b/hikaricp-common/src/main/java/com/zaxxer/hikari/pool/LeakTask.java @@ -14,9 +14,8 @@ * limitations under the License. */ -package com.zaxxer.hikari.util; +package com.zaxxer.hikari.pool; -import java.sql.Connection; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -38,7 +37,7 @@ public class LeakTask implements Runnable private ScheduledExecutorService executorService; private long leakDetectionThreshold; private ScheduledFuture scheduledFuture; - private Connection connection; + private PoolBagEntry bagEntry; private Exception exception; static @@ -48,7 +47,7 @@ public class LeakTask implements Runnable public void cancel() {}; @Override - public LeakTask start(final Connection connection) + public LeakTask start(final PoolBagEntry bagEntry) { return this; } @@ -65,16 +64,16 @@ public class LeakTask implements Runnable { } - private LeakTask(final LeakTask parent, final Connection connection) + private LeakTask(final LeakTask parent, final PoolBagEntry bagEntry) { this.exception = new Exception("Apparent connection leak detected"); - this.connection = connection; + this.bagEntry = bagEntry; scheduledFuture = parent.executorService.schedule(this, parent.leakDetectionThreshold, TimeUnit.MILLISECONDS); } - public LeakTask start(final Connection connection) + public LeakTask start(final PoolBagEntry bagEntry) { - return new LeakTask(this, connection); + return new LeakTask(this, bagEntry); } /** {@inheritDoc} */ @@ -86,7 +85,7 @@ public class LeakTask implements Runnable System.arraycopy(stackTrace, 3, trace, 0, trace.length); exception.setStackTrace(trace); - LOGGER.warn("Connection leak detection triggered for connection {}, stack trace follows", connection.toString(), exception); + LOGGER.warn("Connection leak detection triggered for connection {}, stack trace follows", bagEntry.connection.toString(), exception); } public void cancel() diff --git a/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java b/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java index 2593d7a5..8c53a102 100644 --- a/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java +++ b/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java @@ -30,9 +30,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.zaxxer.hikari.pool.HikariPool; +import com.zaxxer.hikari.pool.LeakTask; import com.zaxxer.hikari.pool.PoolBagEntry; import com.zaxxer.hikari.util.FastList; -import com.zaxxer.hikari.util.LeakTask; /** * This is the proxy class for java.sql.Connection. diff --git a/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ProxyFactory.java b/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ProxyFactory.java index 4f6f2bbe..c5ac541c 100644 --- a/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ProxyFactory.java +++ b/hikaricp-common/src/main/java/com/zaxxer/hikari/proxy/ProxyFactory.java @@ -23,8 +23,8 @@ import java.sql.ResultSet; import java.sql.Statement; import com.zaxxer.hikari.pool.HikariPool; +import com.zaxxer.hikari.pool.LeakTask; import com.zaxxer.hikari.pool.PoolBagEntry; -import com.zaxxer.hikari.util.LeakTask; /** * A factory class that produces proxies around instances of the standard diff --git a/hikaricp-common/src/test/java/com/zaxxer/hikari/MiscTest.java b/hikaricp-common/src/test/java/com/zaxxer/hikari/MiscTest.java index e8f7db4d..46632eae 100644 --- a/hikaricp-common/src/test/java/com/zaxxer/hikari/MiscTest.java +++ b/hikaricp-common/src/test/java/com/zaxxer/hikari/MiscTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import org.slf4j.spi.LocationAwareLogger; import com.zaxxer.hikari.pool.HikariPool; -import com.zaxxer.hikari.util.LeakTask; +import com.zaxxer.hikari.pool.LeakTask; import com.zaxxer.hikari.util.UtilityElf; /**