Move LeakTask into pool package

pull/294/head
Brett Wooldridge 10 years ago
parent 3ca1d0b3f1
commit 538546e630

@ -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);

@ -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()

@ -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.

@ -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

@ -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;
/**

Loading…
Cancel
Save