[DBUTILS-70] Add statement configuration for setting parameters on sql statements. Fix resource leak when a SQLException is thrown configuring a statement.
Project: http://git-wip-us.apache.org/repos/asf/commons-dbutils/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-dbutils/commit/35d1db26 Tree: http://git-wip-us.apache.org/repos/asf/commons-dbutils/tree/35d1db26 Diff: http://git-wip-us.apache.org/repos/asf/commons-dbutils/diff/35d1db26 Branch: refs/heads/master Commit: 35d1db263c01b2d051f68c89e25103c0fcfd0afd Parents: cf7498e Author: Gary Gregory <[email protected]> Authored: Sun Jul 16 12:43:02 2017 -0700 Committer: Carl Hall <[email protected]> Committed: Sun Jul 16 13:02:12 2017 -0700 ---------------------------------------------------------------------- .../apache/commons/dbutils/AbstractQueryRunner.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-dbutils/blob/35d1db26/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 d6b9f2b..961aa68 100644 --- a/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java +++ b/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java @@ -205,7 +205,12 @@ public abstract class AbstractQueryRunner { throws SQLException { PreparedStatement ps = conn.prepareStatement(sql); - configureStatement(ps); + try { + configureStatement(ps); + } catch (SQLException e) { + ps.close(); + throw e; + } return ps; } @@ -236,7 +241,12 @@ public abstract class AbstractQueryRunner { throws SQLException { PreparedStatement ps = conn.prepareStatement(sql, returnedKeys); - configureStatement(ps); + try { + configureStatement(ps); + } catch (SQLException e) { + ps.close(); + throw e; + } return ps; }
