Skip to content

Commit e95e442

Browse files
ccorbachojhoeller
authored andcommitted
Do not swallow exceptions on failing to release a savepoint
By swallowing the exception on failing to release a savepoint, we are hiding client code from database errors that they may need to be aware of or handle. e.g. if the connection is now dead when trying to release the savepoint, by swallowing the exception here, client code has no way of knowing this now until the next operation on the database, which will yield a confusing message about the problem and obscures where the failure occurred as it will be in a different part of their code that throws any exception. Swallowing the exception here is also inconsistent with all the other database calls in the Transaction Object, where we always raise an exception up and let client code decide how to handle the error.
1 parent 24997b3 commit e95e442

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public void releaseSavepoint(Object savepoint) throws TransactionException {
186186
conHolder.getConnection().releaseSavepoint((Savepoint) savepoint);
187187
}
188188
catch (Throwable ex) {
189-
logger.debug("Could not explicitly release JDBC savepoint", ex);
189+
throw new TransactionSystemException("Could not explicitly release JDBC savepoint", ex);
190190
}
191191
}
192192

0 commit comments

Comments
 (0)