diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 058d4f13e2..df82adedad 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -845,7 +845,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat buf.append("\n"); } - LOG.warn(buf.toString()); + LOG.error(buf.toString()); } } } diff --git a/src/main/java/com/alibaba/druid/pool/PoolableConnection.java b/src/main/java/com/alibaba/druid/pool/PoolableConnection.java index 56c28938ef..23ca3ea676 100644 --- a/src/main/java/com/alibaba/druid/pool/PoolableConnection.java +++ b/src/main/java/com/alibaba/druid/pool/PoolableConnection.java @@ -107,11 +107,13 @@ public class PoolableConnection implements PooledConnection, Connection { @Override public void close() throws SQLException { + ConnectionHolder holder = this.holder; + if (holder == null) { - LOG.warn("dup close"); + LOG.error("dup close"); return; } - + DruidAbstractDataSource dataSource = holder.getDataSource(); if (dataSource.isRemoveAbandoned()) { dataSource.removeActiveConnection(this); @@ -133,7 +135,7 @@ public class PoolableConnection implements PooledConnection, Connection { holder.reset(); holder.getDataSource().recycle(this); - holder = null; + this.holder = null; conn = null; } diff --git a/src/main/java/com/alibaba/druid/pool/PoolableResultSet.java b/src/main/java/com/alibaba/druid/pool/PoolableResultSet.java index a7bf869585..92cdbea9fd 100644 --- a/src/main/java/com/alibaba/druid/pool/PoolableResultSet.java +++ b/src/main/java/com/alibaba/druid/pool/PoolableResultSet.java @@ -71,8 +71,8 @@ public final class PoolableResultSet extends PoolableWrapper implements ResultSe @Override public void close() throws SQLException { try { - rs.close(); this.closed = true; + rs.close(); } catch (Throwable t) { throw checkException(t); }