You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by th...@apache.org on 2022/12/07 03:42:57 UTC

[commons-dbutils] branch master updated: DBUTILS-112 Applying patch to add rollback quietly (thanks msiemczyk)

This is an automated email from the ASF dual-hosted git repository.

thecarlhall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbutils.git


The following commit(s) were added to refs/heads/master by this push:
     new 69a74fd  DBUTILS-112 Applying patch to add rollback quietly (thanks msiemczyk)
69a74fd is described below

commit 69a74fdf04e34414da4152991ab2b32dc1be4b1e
Author: Carl Hall <th...@apache.org>
AuthorDate: Tue Dec 6 22:36:33 2022 -0500

    DBUTILS-112 Applying patch to add rollback quietly (thanks msiemczyk)
---
 .../java/org/apache/commons/dbutils/DbUtils.java     | 16 ++++++++++++++++
 .../java/org/apache/commons/dbutils/DbUtilsTest.java | 20 ++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/src/main/java/org/apache/commons/dbutils/DbUtils.java b/src/main/java/org/apache/commons/dbutils/DbUtils.java
index d178db0..5816532 100644
--- a/src/main/java/org/apache/commons/dbutils/DbUtils.java
+++ b/src/main/java/org/apache/commons/dbutils/DbUtils.java
@@ -300,6 +300,22 @@ public final class DbUtils {
         }
     }
 
+
+    /**
+     * Performs a rollback on the <code>Connection</code>, avoid
+     * closing if null and hide any SQLExceptions that occur.
+     *
+     * @param conn Connection to rollback.  A null value is legal.
+     * @since DbUtils 2.0
+     */
+    public static void rollbackQuietly(Connection conn) {
+        try {
+            rollback(conn);
+        } catch (SQLException e) { // NOPMD
+            // quiet
+        }
+    }
+
     /**
      * Performs a rollback on the {@code Connection} then closes it,
      * avoid closing if null.
diff --git a/src/test/java/org/apache/commons/dbutils/DbUtilsTest.java b/src/test/java/org/apache/commons/dbutils/DbUtilsTest.java
index a63cd0d..63ca398 100644
--- a/src/test/java/org/apache/commons/dbutils/DbUtilsTest.java
+++ b/src/test/java/org/apache/commons/dbutils/DbUtilsTest.java
@@ -226,6 +226,26 @@ public class DbUtilsTest {
         verify(mockConnection).rollback();
     }
 
+    @Test
+    public void rollbackQuietlyNull() throws Exception {
+        DbUtils.rollbackQuietly(null);
+    }
+
+    @Test
+    public void rollbackQuietly() throws Exception {
+        Connection mockConnection = mock(Connection.class);
+        DbUtils.rollbackQuietly(mockConnection);
+        verify(mockConnection).rollback();
+    }
+    
+    @Test
+    public void rollbackQuietlyWithException() throws Exception {
+        Connection mockConnection = mock(Connection.class);
+        doThrow(SQLException.class).when(mockConnection).rollback();
+        DbUtils.rollbackQuietly(mockConnection);
+        verify(mockConnection).rollback();
+    }
+    
     @Test
     public void rollbackAndCloseNull() throws Exception {
         DbUtils.rollbackAndClose(null);