Mark and Rémy,

On 7/10/26 1:18 PM, Mark Thomas wrote:
On 10/07/2026 16:45, Rémy Maucherat wrote:
On Fri, Jul 10, 2026 at 5:13 PM Mark Thomas <[email protected]> wrote:

On 10/07/2026 13:17, [email protected] wrote:
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/main by this push:
       new 8120a12a0d Fixes from code review
8120a12a0d is described below

commit 8120a12a0dbbaafc104fa0d61a319d480b7ff92c
Author: remm <[email protected]>
AuthorDate: Fri Jul 10 14:17:44 2026 +0200

      Fixes from code review

      Take advantage of rollback to improve save reliability.
      Clear out transient memory changes only if save is successful,

Line 1253: There is no rollback if the commit fails

I don't see the point. What should I do then if rollback fails. And so
on. LLMs often go on a "what if it fails" loop and there's no good
solution.

Commit failing strikes me as more likely than rollback failing (essentially rollback shouldn't fail).

+1

Rollback failing is pretty disastrous. Commit failing is not unusual.

I'd expected something like:

dbConnection.setAutoCommit(false);
try {
     saveInternal();
     commit();
] catch (Throwable t) {
     ExceptionUtils.handleThrowable(t);
     try {
         rollback();
     } catch (SQLException sqle) {
         t.addSuppressed(sqle);
         throw t
     }
} finally {
     // clear out transient here
     dbConnection.setAutoCommit(true);
}

+1 IMHO

This is how application code generally looks.

-chris


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to