From d484e4f3ff1d33c60cec923edc7ad1b890275379 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 2 Oct 2025 13:01:30 +0200 Subject: [PATCH] Ignore SQL state 3B001 in releaseSavepoint (for HSQLDB) Closes gh-35564 --- .../jdbc/datasource/JdbcTransactionObjectSupport.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java index 3ce600ebf7f..b8e1064919f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java @@ -184,6 +184,10 @@ public abstract class JdbcTransactionObjectSupport implements SavepointManager, // typically on Oracle - ignore } catch (SQLException ex) { + if ("3B001".equals(ex.getSQLState())) { + // Savepoint already released (HSQLDB, PostgreSQL, DB2) - ignore + return; + } // ignore Microsoft SQLServerException: This operation is not supported. String msg = ex.getMessage(); if (msg == null || !msg.contains("not supported")) {