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 <thecarlh...@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);