[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;
     }
 

Reply via email to