diff --git a/src/main/java/com/zaxxer/hikari/metrics/CodaHaleMetricsTracker.java b/src/main/java/com/zaxxer/hikari/metrics/CodaHaleMetricsTracker.java index 6e6093a59..bad670856 100644 --- a/src/main/java/com/zaxxer/hikari/metrics/CodaHaleMetricsTracker.java +++ b/src/main/java/com/zaxxer/hikari/metrics/CodaHaleMetricsTracker.java @@ -21,12 +21,9 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; import com.zaxxer.hikari.pool.PoolEntry; -import com.zaxxer.hikari.util.ClockSource; public final class CodaHaleMetricsTracker extends MetricsTracker { - private static final ClockSource clockSource = ClockSource.INSTANCE; - private final String poolName; private final Timer connectionObtainTimer; private final Histogram connectionUsage; @@ -95,7 +92,7 @@ public Context recordConnectionRequest() @Override public void recordConnectionUsage(final PoolEntry bagEntry) { - connectionUsage.update(clockSource.elapsedMillis(bagEntry.lastOpenTime)); + connectionUsage.update(bagEntry.getElapsedMillis()); } public Timer getConnectionAcquisitionTimer() @@ -122,12 +119,5 @@ public void stop() { innerContext.stop(); } - - /** {@inheritDoc} */ - @Override - public void setConnectionLastOpen(final PoolEntry bagEntry, final long now) - { - bagEntry.lastOpenTime = now; - } } } diff --git a/src/main/java/com/zaxxer/hikari/metrics/MetricsTracker.java b/src/main/java/com/zaxxer/hikari/metrics/MetricsTracker.java index b86060d8a..2fe90c9ab 100644 --- a/src/main/java/com/zaxxer/hikari/metrics/MetricsTracker.java +++ b/src/main/java/com/zaxxer/hikari/metrics/MetricsTracker.java @@ -17,7 +17,6 @@ package com.zaxxer.hikari.metrics; import com.zaxxer.hikari.pool.PoolEntry; -import com.zaxxer.hikari.util.ClockSource; /** * This class only supports realtime, not historical metrics. @@ -59,16 +58,5 @@ public void stop() { // do nothing } - - /** - * Set the lastOpenTime on the provided bag entry. - * - * @param bagEntry the bag entry - * @param now the last open timestamp from {@link ClockSource#currentTime()} - */ - public void setConnectionLastOpen(final PoolEntry bagEntry, final long now) - { - // do nothing - } } } diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index b2e52238f..5382c3841 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -171,7 +171,7 @@ public final Connection getConnection(final long hardTimeout) throws SQLExceptio timeout = hardTimeout - clockSource.elapsedMillis(startTime, now); } else { - metricsContext.setConnectionLastOpen(poolEntry, now); + poolEntry.lastOpenTime = now; metricsContext.stop(); return poolEntry.createProxyConnection(leakTask.start(poolEntry), now); } diff --git a/src/main/java/com/zaxxer/hikari/pool/PoolBase.java b/src/main/java/com/zaxxer/hikari/pool/PoolBase.java index 46adb728a..22253a095 100644 --- a/src/main/java/com/zaxxer/hikari/pool/PoolBase.java +++ b/src/main/java/com/zaxxer/hikari/pool/PoolBase.java @@ -29,7 +29,7 @@ abstract class PoolBase { - protected final Logger LOGGER = LoggerFactory.getLogger(PoolBase.class); + private final Logger LOGGER = LoggerFactory.getLogger(PoolBase.class); protected final HikariConfig config; protected final String poolName; protected long connectionTimeout; diff --git a/src/main/java/com/zaxxer/hikari/pool/PoolEntry.java b/src/main/java/com/zaxxer/hikari/pool/PoolEntry.java index 6bcdf3bad..251b74581 100644 --- a/src/main/java/com/zaxxer/hikari/pool/PoolEntry.java +++ b/src/main/java/com/zaxxer/hikari/pool/PoolEntry.java @@ -37,11 +37,11 @@ public final class PoolEntry implements IConcurrentBagEntry { private static final Logger LOGGER = LoggerFactory.getLogger(PoolEntry.class); - public Connection connection; - public long lastAccess; + Connection connection; + long lastAccess; - public volatile long lastOpenTime; - public volatile boolean evict; + volatile long lastOpenTime; + volatile boolean evict; private final FastList openStatements; private final PoolBase poolBase; @@ -63,7 +63,7 @@ public final class PoolEntry implements IConcurrentBagEntry * * @param lastAccess last access time-stamp */ - public void recycle(final long lastAccess) + void recycle(final long lastAccess) { this.lastAccess = lastAccess; poolBase.releaseConnection(this); @@ -72,7 +72,7 @@ public void recycle(final long lastAccess) /** * @param endOfLife */ - public void setFutureEol(final ScheduledFuture endOfLife) + void setFutureEol(final ScheduledFuture endOfLife) { this.endOfLife = endOfLife; } @@ -92,7 +92,7 @@ public String getPoolName() return poolBase.getPoolName(); } - public Connection getConnection() + Connection getConnection() { return connection; } @@ -107,16 +107,22 @@ public boolean isEvicted() return evict; } - public void evict() + void evict() { this.evict = true; } - public FastList getStatementsList() + FastList getStatementsList() { return openStatements; } + /** Returns millis since lastOpenTime */ + public long getElapsedMillis() + { + return ClockSource.INSTANCE.elapsedMillis(lastOpenTime); + } + // *********************************************************************** // IConcurrentBagEntry methods // ***********************************************************************