diff --git a/pom.xml b/pom.xml index 4a7a6c0a06..e4b71292ff 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.alibaba druid - 1.1.20_preview_07 + 1.1.20_preview_08 jar druid diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 7feb4574b5..2d030cb856 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -1691,6 +1691,9 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat public void handleConnectionException(DruidPooledConnection pooledConnection, Throwable t, String sql) throws SQLException { final DruidConnectionHolder holder = pooledConnection.getConnectionHolder(); + if (holder == null) { + return; + } errorCountUpdater.incrementAndGet(this); lastError = t; @@ -2998,7 +3001,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat DruidConnectionHolder connection = connections[i]; if (onFatalError || fatalErrorIncrement > 0) { - if (lastFatalErrorTimeMillis < connection.lastActiveTimeMillis) { + if (lastFatalErrorTimeMillis > connection.lastActiveTimeMillis) { keepAliveConnections[keepAliveCount++] = connection; continue; } else { diff --git a/src/main/java/com/alibaba/druid/pool/DruidPooledConnection.java b/src/main/java/com/alibaba/druid/pool/DruidPooledConnection.java index a6b3afbda7..f0245c1d03 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidPooledConnection.java +++ b/src/main/java/com/alibaba/druid/pool/DruidPooledConnection.java @@ -147,6 +147,7 @@ public class DruidPooledConnection extends PoolableWrapper implements javax.sql. public void closePoolableStatement(DruidPooledPreparedStatement stmt) throws SQLException { PreparedStatement rawStatement = stmt.getRawPreparedStatement(); + final DruidConnectionHolder holder = this.holder; if (holder == null) { return; } diff --git a/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java b/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java index 32875cb8df..d2b3417064 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java +++ b/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java @@ -98,8 +98,9 @@ public class DruidPooledStatement extends PoolableWrapper implements Statement { DruidDataSource dataSource = null; - if (this.conn.holder.dataSource instanceof DruidDataSource) { - dataSource = (DruidDataSource) this.conn.holder.dataSource; + final DruidConnectionHolder holder = this.conn.holder; + if (holder.dataSource instanceof DruidDataSource) { + dataSource = (DruidDataSource) holder.dataSource; } if (dataSource == null) { return;