Repository: commons-dbutils Updated Branches: refs/heads/master e672a7b52 -> b47e288b2
[DBUTILS-138] org.apache.commons.dbutils.QueryRunner.query(Connection, boolean, String, ResultSetHandler<T>, Object...) Exception in closing statement leave connections open. Project: http://git-wip-us.apache.org/repos/asf/commons-dbutils/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-dbutils/commit/b47e288b Tree: http://git-wip-us.apache.org/repos/asf/commons-dbutils/tree/b47e288b Diff: http://git-wip-us.apache.org/repos/asf/commons-dbutils/diff/b47e288b Branch: refs/heads/master Commit: b47e288b2864853f1a27a33b5a6084b2dadba3c0 Parents: e672a7b Author: Gary Gregory <garydgreg...@gmail.com> Authored: Fri May 4 10:23:28 2018 -0600 Committer: Gary Gregory <garydgreg...@gmail.com> Committed: Fri May 4 10:23:28 2018 -0600 ---------------------------------------------------------------------- src/changes/changes.xml | 3 ++ .../commons/dbutils/AbstractQueryRunner.java | 30 ++++++++++++++++++++ .../org/apache/commons/dbutils/QueryRunner.java | 11 +++---- 3 files changed, 37 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-dbutils/blob/b47e288b/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index cd84411..7e88e6b 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -54,6 +54,9 @@ The <action> type attribute can be add,update,fix,remove. <action dev="ggregory" type="add" issue="DBUTILS-136" due-to="Matthew Hall, Gary Gregory"> CaseInsensitiveHashMap cannot be accessed by subclasses of BasicRowProcessor; add org.apache.commons.dbutils.BasicRowProcessor.createCaseInsensitiveHashMap(int). </action> + <action dev="ggregory" type="fix" issue="DBUTILS-138" due-to="Stefano Lissa, Gary Gregory"> + org.apache.commons.dbutils.QueryRunner.query(Connection, boolean, String, ResultSetHandler<T>, Object...) Exception in closing statement leave connections open. + </action> </release> <release version="1.7" date="2017-07-20" description="Bug fixes and separate column & property handlers using SPI"> http://git-wip-us.apache.org/repos/asf/commons-dbutils/blob/b47e288b/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java b/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java index f0c3590..472ed32 100644 --- a/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java +++ b/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java @@ -203,6 +203,36 @@ public abstract class AbstractQueryRunner { DbUtils.close(stmt); } + /** + * Calls {@link DbUtils#closeQuietly(Connection)}. + * + * @param conn Connection to close. + * @since 2.0 + */ + protected void closeQuietly(Connection conn) { + DbUtils.closeQuietly(conn); + } + + /** + * Calls {@link DbUtils#closeQuietly(ResultSet)}. + * + * @param rs ResultSet to close. + * @since 2.0 + */ + protected void closeQuietly(ResultSet rs) { + DbUtils.closeQuietly(rs); + } + + /** + * Calls {@link DbUtils#closeQuietly(Statement)}. + * + * @param statement ResultSet to close. + * @since 2.0 + */ + protected void closeQuietly(Statement statement) { + DbUtils.closeQuietly(statement); + } + private void configureStatement(Statement stmt) throws SQLException { if (stmtConfig != null) { http://git-wip-us.apache.org/repos/asf/commons-dbutils/blob/b47e288b/src/main/java/org/apache/commons/dbutils/QueryRunner.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/dbutils/QueryRunner.java b/src/main/java/org/apache/commons/dbutils/QueryRunner.java index 710b629..4a8dc2d 100644 --- a/src/main/java/org/apache/commons/dbutils/QueryRunner.java +++ b/src/main/java/org/apache/commons/dbutils/QueryRunner.java @@ -391,13 +391,10 @@ public class QueryRunner extends AbstractQueryRunner { this.rethrow(e, sql, params); } finally { - try { - close(rs); - } finally { - close(stmt); - if (closeConn) { - close(conn); - } + closeQuietly(rs); + closeQuietly(stmt); + if (closeConn) { + close(conn); } }