diff --git a/src/main/java/com/zaxxer/hikari/HikariPool.java b/src/main/java/com/zaxxer/hikari/HikariPool.java index 415eb551..37147756 100644 --- a/src/main/java/com/zaxxer/hikari/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/HikariPool.java @@ -184,7 +184,7 @@ public class HikariPool implements HikariPoolMBean { if (!connectionProxy.isBrokenConnection()) { - connectionProxy.setLastAccess(System.currentTimeMillis()); + connectionProxy.markLastAccess(); idleConnectionCount.incrementAndGet(); idleConnections.put(connectionProxy); } diff --git a/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java b/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java index bec04bc4..2a362e4e 100644 --- a/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java +++ b/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java @@ -50,8 +50,7 @@ public class ConnectionProxy extends HikariProxyBase implements IHikariConnectio { private static ProxyFactory PROXY_FACTORY; - @HikariInject private static final Set POSTGRESQL_ERRORS; - @HikariInject private static final Set SPECIAL_ERRORS; + @HikariInject private static final Set SQL_ERRORS; @HikariInject private ArrayList _openStatements; @HikariInject private volatile boolean _isClosed; @@ -69,14 +68,12 @@ public class ConnectionProxy extends HikariProxyBase implements IHikariConnectio // static initializer static { - POSTGRESQL_ERRORS = new HashSet(); - POSTGRESQL_ERRORS.add("57P01"); // ADMIN SHUTDOWN - POSTGRESQL_ERRORS.add("57P02"); // CRASH SHUTDOWN - POSTGRESQL_ERRORS.add("57P03"); // CANNOT CONNECT NOW - POSTGRESQL_ERRORS.add("57P02"); // CRASH SHUTDOWN - - SPECIAL_ERRORS = new HashSet(); - SPECIAL_ERRORS.add("01002"); // SQL92 disconnect error + SQL_ERRORS = new HashSet(); + SQL_ERRORS.add("57P01"); // ADMIN SHUTDOWN + SQL_ERRORS.add("57P02"); // CRASH SHUTDOWN + SQL_ERRORS.add("57P03"); // CANNOT CONNECT NOW + SQL_ERRORS.add("57P02"); // CRASH SHUTDOWN + SQL_ERRORS.add("01002"); // SQL92 disconnect error __static(); } @@ -114,9 +111,9 @@ public class ConnectionProxy extends HikariProxyBase implements IHikariConnectio } @HikariInject - public void setLastAccess(long timestamp) + public void markLastAccess() { - this._lastAccess = timestamp; + this._lastAccess = System.currentTimeMillis(); } @HikariInject @@ -152,22 +149,12 @@ public class ConnectionProxy extends HikariProxyBase implements IHikariConnectio public SQLException checkException(SQLException sqle) { String sqlState = sqle.getSQLState(); - if (sqlState == null) - { - return sqle; - } - - sqlState = sqlState.toUpperCase(); - if (sqlState.startsWith("08")) - { - _forceClose = true; - } - else if (POSTGRESQL_ERRORS.contains(sqlState.toUpperCase()) || SPECIAL_ERRORS.contains(sqlState)) + if (sqlState != null) { - _forceClose = true; + _forceClose |= sqlState.startsWith("08") | SQL_ERRORS.contains(sqlState); } - return sqle; + return sqle; } @HikariInject diff --git a/src/main/java/com/zaxxer/hikari/proxy/IHikariConnectionProxy.java b/src/main/java/com/zaxxer/hikari/proxy/IHikariConnectionProxy.java index 6058d1f6..6b698b01 100644 --- a/src/main/java/com/zaxxer/hikari/proxy/IHikariConnectionProxy.java +++ b/src/main/java/com/zaxxer/hikari/proxy/IHikariConnectionProxy.java @@ -42,7 +42,7 @@ public interface IHikariConnectionProxy long getLastAccess(); - void setLastAccess(long timestamp); + void markLastAccess(); void setParentPool(HikariPool parentPool);