diff --git a/CHANGES b/CHANGES index 2fc5cf4e..6245c27f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,12 +1,27 @@ HikariCP Changes - * issue 379: stop closing idle connections, to keep minIdle connections in pool +Changes in 2.4.1 + + * issue 380: housekeeper was not being scheduled in the case of a user specified + ScheduledExecutorService instance. + + * issue 340: rollback change that elides setting the readonly property if the user + never explicitly configured it. See discussion in the Github issue tracker. + + * issue 379: stop closing idle connections, to keep minimumIdle connections in pool + * issue 375: fixed InvalidPathException in HikariConfig + * issue 362: fixed NullPointerException in closing connection (closing statements) + * issue 357: allow altering the username & password through JMX at runtime + * issue 349: handle integer Transaction isolation level + * Throw SQLTransientConnectionException instead of SQLTimeoutException + * for validating connection, if network time out is set, do not set query timeout too + * ResultSet.getStatement() should return StatementProxy Changes in 2.4.0 diff --git a/pom.xml b/pom.xml index 932ba5ff..fd960e62 100644 --- a/pom.xml +++ b/pom.xml @@ -228,7 +228,8 @@ HikariCP com.zaxxer.hikari, - com.zaxxer.hikari.hibernate + com.zaxxer.hikari.hibernate, + com.zaxxer.hikari.metrics com.zaxxer.hikari.* <_exportcontents> diff --git a/src/main/java/com/zaxxer/hikari/HikariConfig.java b/src/main/java/com/zaxxer/hikari/HikariConfig.java index 1d4f3f46..a32e4be7 100644 --- a/src/main/java/com/zaxxer/hikari/HikariConfig.java +++ b/src/main/java/com/zaxxer/hikari/HikariConfig.java @@ -79,7 +79,7 @@ public class HikariConfig implements HikariConfigMXBean private String transactionIsolationName; private String username; private boolean isAutoCommit; - private Boolean isReadOnly; + private boolean isReadOnly; private boolean isInitializationFailFast; private boolean isIsolateInternalQueries; private boolean isRegisterMbeans; @@ -548,12 +548,12 @@ public class HikariConfig implements HikariConfigMXBean healthCheckProperties.setProperty(key, value); } - public Boolean isReadOnly() + public boolean isReadOnly() { return isReadOnly; } - public void setReadOnly(Boolean readOnly) + public void setReadOnly(boolean readOnly) { this.isReadOnly = readOnly; } diff --git a/src/main/java/com/zaxxer/hikari/pool/PoolElf.java b/src/main/java/com/zaxxer/hikari/pool/PoolElf.java index 8a9cda84..0b4e8c76 100644 --- a/src/main/java/com/zaxxer/hikari/pool/PoolElf.java +++ b/src/main/java/com/zaxxer/hikari/pool/PoolElf.java @@ -45,7 +45,7 @@ public final class PoolElf private final HikariConfig config; private final String poolName; private final String catalog; - private final Boolean isReadOnly; + private final boolean isReadOnly; private final boolean isAutoCommit; private final boolean isUseJdbc4Validation; private final boolean isIsolateInternalQueries; @@ -181,9 +181,7 @@ public final class PoolElf networkTimeout = getAndSetNetworkTimeout(connection, connectionTimeout); connection.setAutoCommit(isAutoCommit); - if (isReadOnly != null) { - connection.setReadOnly(isReadOnly); - } + connection.setReadOnly(isReadOnly); final int defaultLevel = connection.getTransactionIsolation(); transactionIsolation = (transactionIsolation < 0 ? defaultLevel : transactionIsolation); @@ -245,7 +243,7 @@ public final class PoolElf { int resetBits = 0; - if (isReadOnly != null && poolEntry.isReadOnly != isReadOnly) { + if (poolEntry.isReadOnly != isReadOnly) { poolEntry.connection.setReadOnly(isReadOnly); resetBits |= 0b00001; } @@ -278,9 +276,7 @@ public final class PoolElf void resetPoolEntry(final PoolBagEntry poolEntry) { - if (isReadOnly != null) { - poolEntry.setReadOnly(isReadOnly); - } + poolEntry.setReadOnly(isReadOnly); poolEntry.setCatalog(catalog); poolEntry.setAutoCommit(isAutoCommit); poolEntry.setNetworkTimeout(networkTimeout); diff --git a/src/test/java/com/zaxxer/hikari/mocks/StubPreparedStatement.java b/src/test/java/com/zaxxer/hikari/mocks/StubPreparedStatement.java index a7eeef5e..f7fc245e 100644 --- a/src/test/java/com/zaxxer/hikari/mocks/StubPreparedStatement.java +++ b/src/test/java/com/zaxxer/hikari/mocks/StubPreparedStatement.java @@ -439,6 +439,7 @@ public class StubPreparedStatement extends StubStatement implements PreparedStat /** {@inheritDoc} */ @Override + @SuppressWarnings("deprecation") public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { } diff --git a/src/test/java/com/zaxxer/hikari/mocks/StubResultSet.java b/src/test/java/com/zaxxer/hikari/mocks/StubResultSet.java index a4131489..609d8c61 100644 --- a/src/test/java/com/zaxxer/hikari/mocks/StubResultSet.java +++ b/src/test/java/com/zaxxer/hikari/mocks/StubResultSet.java @@ -141,6 +141,7 @@ public class StubResultSet implements ResultSet /** {@inheritDoc} */ @Override + @SuppressWarnings("deprecation") public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { return null; @@ -183,6 +184,7 @@ public class StubResultSet implements ResultSet /** {@inheritDoc} */ @Override + @SuppressWarnings("deprecation") public InputStream getUnicodeStream(int columnIndex) throws SQLException { return null; @@ -253,6 +255,7 @@ public class StubResultSet implements ResultSet /** {@inheritDoc} */ @Override + @SuppressWarnings("deprecation") public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { return null; @@ -295,6 +298,7 @@ public class StubResultSet implements ResultSet /** {@inheritDoc} */ @Override + @SuppressWarnings("deprecation") public InputStream getUnicodeStream(String columnLabel) throws SQLException { return null;