diff --git a/src/main/java/com/alibaba/druid/pool/PoolableStatement.java b/src/main/java/com/alibaba/druid/pool/PoolableStatement.java index 5c3b5667f6..1893049d1d 100644 --- a/src/main/java/com/alibaba/druid/pool/PoolableStatement.java +++ b/src/main/java/com/alibaba/druid/pool/PoolableStatement.java @@ -67,7 +67,7 @@ public class PoolableStatement extends PoolableWrapper implements Statement { } } - void clearResultSet() { + protected void clearResultSet() { for (ResultSet rs : resultSetTrace) { try { if (!rs.isClosed()) { diff --git a/src/test/java/com/alibaba/druid/bvt/pool/basic/PoolableStatementTest3.java b/src/test/java/com/alibaba/druid/bvt/pool/basic/PoolableStatementTest3.java new file mode 100644 index 0000000000..ed28754dff --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/pool/basic/PoolableStatementTest3.java @@ -0,0 +1,28 @@ +package com.alibaba.druid.bvt.pool.basic; + +import java.sql.SQLException; + +import junit.framework.TestCase; + +import com.alibaba.druid.mock.MockResultSet; +import com.alibaba.druid.pool.PoolableStatement; + +public class PoolableStatementTest3 extends TestCase { + + public void test_clearResultSetError() throws Exception { + final MockResultSet rs = new MockResultSet(null) { + public void close() throws SQLException { + throw new SQLException(); + } + }; + + PoolableStatement stmt = new PoolableStatement(null, null) { + public void close() throws SQLException { + resultSetTrace.add(rs); + clearResultSet(); + } + }; + stmt.close(); + + } +}