pull/345/head
Brett Wooldridge 10 years ago
parent 4f5abd1318
commit 73cf8d0b13

@ -21,7 +21,6 @@ import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.sql.Wrapper;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.sql.DataSource;
@ -162,7 +161,7 @@ public class HikariDataSource extends HikariConfig implements DataSource, Closea
return (T) pool.getDataSource();
}
if (pool.getDataSource() instanceof Wrapper) {
if (pool.getDataSource() != null) {
return (T) pool.getDataSource().unwrap(iface);
}
}
@ -183,7 +182,7 @@ public class HikariDataSource extends HikariConfig implements DataSource, Closea
return true;
}
if (pool.getDataSource() instanceof Wrapper) {
if (pool.getDataSource() != null) {
return pool.getDataSource().isWrapperFor(iface);
}
}

@ -203,7 +203,12 @@ public class HikariPool implements HikariPoolMXBean, IBagStateListener
}
logPoolState("Timeout failure ");
throw new SQLTimeoutException(String.format("Timeout after %dms of waiting for a connection.", clockSource.elapsedMillis(startTime), lastConnectionFailure.getAndSet(null)));
String sqlState = null;
final Throwable originalException = lastConnectionFailure.getAndSet(null);
if (originalException instanceof SQLException) {
sqlState = ((SQLException) originalException).getSQLState();
}
throw new SQLTimeoutException(String.format("Timeout after %dms of waiting for a connection.", clockSource.elapsedMillis(startTime)), sqlState, originalException);
}
/**
@ -292,6 +297,7 @@ public class HikariPool implements HikariPoolMXBean, IBagStateListener
public void setMetricRegistry(Object metricRegistry)
{
this.isRecordMetrics = metricRegistry != null;
if (isRecordMetrics) {
setMetricsTrackerFactory(new CodahaleMetricsTrackerFactory((MetricRegistry) metricRegistry));
}

@ -164,7 +164,7 @@ public final class PoolElf
throw new SQLException("JDBC4 Connection.isValid() method not supported, connection test query must be configured");
}
networkTimeout = (networkTimeout < 0 ? getAndSetNetworkTimeout(connection, connectionTimeout) : networkTimeout);
networkTimeout = getAndSetNetworkTimeout(connection, connectionTimeout);
transactionIsolation = (transactionIsolation < 0 ? connection.getTransactionIsolation() : transactionIsolation);
connection.setAutoCommit(isAutoCommit);
@ -268,7 +268,6 @@ public final class PoolElf
/**
* Register MBeans for HikariConfig and HikariPool.
*
* @param configuration a HikariConfig instance
* @param pool a HikariPool instance
*/
void registerMBeans(final HikariPool pool)
@ -297,8 +296,6 @@ public final class PoolElf
/**
* Unregister MBeans for HikariConfig and HikariPool.
*
* @param configuration a HikariConfig instance
*/
void unregisterMBeans()
{
@ -369,8 +366,8 @@ public final class PoolElf
catch (Throwable e) {
if (isQueryTimeoutSupported == UNINITIALIZED) {
isQueryTimeoutSupported = FALSE;
LOGGER.debug("{} - Statement.setQueryTimeout() not supported", poolName);
}
LOGGER.debug("{} - Statement.setQueryTimeout() failed or is not supported", poolName);
}
}
}

Loading…
Cancel
Save