From 34b37aaaae207c95719e1898b58e652d30d7e2f4 Mon Sep 17 00:00:00 2001
From: Gary Fredericks <fredericksgary@gmail.com>
Date: Tue, 26 Feb 2013 16:43:30 -0600
Subject: [PATCH] Catch Throwable inside transaction instead of Exception

This ensures that transactions roll back whether an Exception or an
Error is thrown.
---
 src/main/clojure/clojure/java/jdbc.clj |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/main/clojure/clojure/java/jdbc.clj b/src/main/clojure/clojure/java/jdbc.clj
index 24a3156..faefba9 100644
--- a/src/main/clojure/clojure/java/jdbc.clj
+++ b/src/main/clojure/clojure/java/jdbc.clj
@@ -512,9 +512,9 @@ generated keys are returned (as a map)." }
                (.rollback con)
                (.commit con))
              result)
-           (catch Exception e
+           (catch Throwable t
              (.rollback con)
-             (throw-non-rte e))
+             (throw-non-rte t))
            (finally
             (db-rollback nested-db false)
             (.setAutoCommit con auto-commit)))))
@@ -800,9 +800,9 @@ generated keys are returned (as a map)." }
                (.rollback con)
                (.commit con))
              result)
-           (catch Exception e
+           (catch Throwable t
              (.rollback con)
-             (throw-non-rte e))
+             (throw-non-rte t))
            (finally
             (db-rollback *db* false)
             (.setAutoCommit con auto-commit)))))
-- 
1.7.9.5

