From 2cabded7f40be32d169cb2dc6b94af30de1f18f9 Mon Sep 17 00:00:00 2001
From: Brett Wooldridge <brett.wooldridge@gmail.com>
Date: Sun, 22 Mar 2015 14:51:48 +0900
Subject: [PATCH] Fix #286 fix regression in Dropwizard runtime dependency

---
 .../com/zaxxer/hikari/pool/BaseHikariPool.java  | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

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 f67fe622..cf07dcb2 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
@@ -147,7 +147,8 @@ public abstract class BaseHikariPool implements HikariPoolMBean, IBagStateListen
       this.isIsolateInternalQueries = configuration.isIsolateInternalQueries();
       this.isUseJdbc4Validation = configuration.getConnectionTestQuery() == null;
 
-      setMetricRegistry((MetricRegistry) configuration.getMetricRegistry());
+      setMetricRegistry(configuration.getMetricRegistry());
+      setHealthCheckRegistry(configuration.getHealthCheckRegistry());
 
       this.dataSource = poolUtils.initializeDataSource(configuration.getDataSourceClassName(), configuration.getDataSource(), configuration.getDataSourceProperties(), configuration.getJdbcUrl(), username, password);
 
@@ -161,10 +162,6 @@ public abstract class BaseHikariPool implements HikariPoolMBean, IBagStateListen
       this.houseKeepingExecutorService.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
       this.leakTask = (configuration.getLeakDetectionThreshold() == 0) ? LeakTask.NO_LEAK : new LeakTask(configuration.getLeakDetectionThreshold(), houseKeepingExecutorService);
 
-      if (configuration.getHealthCheckRegistry() != null) {
-         setHealthCheckRegistry((HealthCheckRegistry) configuration.getHealthCheckRegistry());
-      }
-
       setRemoveOnCancelPolicy(houseKeepingExecutorService);
       poolUtils.setLoginTimeout(dataSource, connectionTimeout);
       registerMBeans(configuration, this);
@@ -379,20 +376,22 @@ public abstract class BaseHikariPool implements HikariPoolMBean, IBagStateListen
       }
    }
 
-   public void setMetricRegistry(MetricRegistry metricRegistry)
+   public void setMetricRegistry(Object metricRegistry)
    {
       this.isRecordMetrics = metricRegistry != null;
       if (isRecordMetrics) {
-         this.metricsTracker = new CodaHaleMetricsTracker(this, metricRegistry);
+         this.metricsTracker = new CodaHaleMetricsTracker(this, (MetricRegistry) metricRegistry);
       }
       else {
          this.metricsTracker = new MetricsTracker(this);
       }
    }
 
-   public void setHealthCheckRegistry(HealthCheckRegistry healthCheckRegistry)
+   public void setHealthCheckRegistry(Object healthCheckRegistry)
    {
-      CodahaleHealthChecker.registerHealthChecks(this, healthCheckRegistry);
+      if (healthCheckRegistry != null) {
+         CodahaleHealthChecker.registerHealthChecks(this, (HealthCheckRegistry) healthCheckRegistry);
+      }
    }
 
    // ***********************************************************************