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

jmclean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 5fef3314e6 [#8306] Avoid rollback when autocommit is true in 
ScriptRunner.java (#8332)
5fef3314e6 is described below

commit 5fef3314e69466274a5d07154b2197614736b923
Author: Surya B <[email protected]>
AuthorDate: Sat Aug 30 07:56:12 2025 +0530

    [#8306] Avoid rollback when autocommit is true in ScriptRunner.java (#8332)
    
    ### What changes were proposed in this pull request?
    ---
    - Updated `ScriptRunner.java` so that `conn.rollback()` is **not always
    called**.
    - Rollback is now only performed when:
      - `autoCommit` is set to `false`, **and**
      - an exception occurs during script execution.
    - Moved `conn.rollback()` logic from the `finally` block into the
    `catch` block.
    - Cleaned up control flow to avoid unnecessary rollback calls after
    successful commits.
    
    ---
    
    ### Why are the changes needed?
    ---
    Previously, `conn.rollback()` was called in the `finally` block
    regardless of connection mode.
    
    - When `autoCommit = true`, rollback has no effect and is misleading.
    - When a commit was already performed successfully, rollback was still
    invoked unnecessarily.
    
    This change makes rollback behavior **cleaner and safer**, ensuring it
    is only triggered when actually required.
    
    ---
    
    ### Does this PR introduce _any_ user-facing change?
    ---
    -  No user-facing API changes.
    - Internal improvement in the Hive Metastore test utility
    `ScriptRunner.java`.
---
 .../src/test/java/org/apache/gravitino/hive/hms/ScriptRunner.java | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/hms/ScriptRunner.java
 
b/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/hms/ScriptRunner.java
index c0a94c8c87..e58e8e29a8 100644
--- 
a/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/hms/ScriptRunner.java
+++ 
b/catalogs/hive-metastore-common/src/test/java/org/apache/gravitino/hive/hms/ScriptRunner.java
@@ -189,9 +189,15 @@ public class ScriptRunner {
       e.fillInStackTrace();
       printlnError("Error executing: " + command);
       printlnError(e);
+      if (!autoCommit) {
+        try {
+          conn.rollback();
+        } catch (SQLException rollbackException) {
+          printlnError("Error during rollback " + rollbackException);
+        }
+      }
       throw e;
     } finally {
-      conn.rollback();
       flush();
     }
   }

Reply via email to