From a84a96067ba07ff0995cf2967eb10b97cc4fd385 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 22 Jul 2012 01:30:20 +0800 Subject: [PATCH] bug fixed resultSet null --- .../com/alibaba/druid/mock/MockPreparedStatement.java | 10 ++++++++++ .../com/alibaba/druid/pool/DruidPooledStatement.java | 3 +++ .../com/alibaba/druid/util/jdbc/StatementBase.java | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java b/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java index 6159a3693c..aac0e05575 100644 --- a/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java +++ b/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java @@ -77,4 +77,14 @@ public class MockPreparedStatement extends PreparedStatementBase implements Prep return false; } + @Override + public ResultSet getResultSet() throws SQLException { + checkOpen(); + + if (resultSet == null) { + resultSet = this.getConnection().getDriver().createResultSet(this); + } + + return resultSet; + } } diff --git a/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java b/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java index 1b7228a2de..4ae4a365f0 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java +++ b/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java @@ -284,6 +284,9 @@ public class DruidPooledStatement extends PoolableWrapper implements Statement { try { ResultSet rs = stmt.getResultSet(); + if (rs == null) { + return null; + } DruidPooledResultSet poolableResultSet = new DruidPooledResultSet(this, rs); resultSetTrace.add(poolableResultSet); diff --git a/src/main/java/com/alibaba/druid/util/jdbc/StatementBase.java b/src/main/java/com/alibaba/druid/util/jdbc/StatementBase.java index 821e00aefe..b70242e8d4 100644 --- a/src/main/java/com/alibaba/druid/util/jdbc/StatementBase.java +++ b/src/main/java/com/alibaba/druid/util/jdbc/StatementBase.java @@ -27,8 +27,8 @@ public abstract class StatementBase implements Statement { protected boolean closed = false; private boolean poolable; - private ResultSet generatedKeys; - private ResultSet resultSet; + protected ResultSet generatedKeys; + protected ResultSet resultSet; public StatementBase(Connection connection){ super();