From fc16bde227b796b0905a4b2e84c4efd94ee9e3ab Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 3 Jul 2023 22:43:13 +1200 Subject: [PATCH] Modify ImplicitReadOnlyTransaction, call deactivate in finally --- .../ImplicitReadOnlyTransaction.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java index b39cb49d3..fd721e6c2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java @@ -519,15 +519,17 @@ final class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEve if (!active) { throw new IllegalStateException(illegalStateMessage); } - if (useCommit) { - try { - connection.commit(); - } catch (SQLException e) { - throw new PersistenceException(e); + try { + if (useCommit) { + try { + connection.commit(); + } catch (SQLException e) { + throw new PersistenceException(e); + } } + } finally { + deactivate(); } - // expect AutoCommit so just deactivate / put back into pool - deactivate(); } /** @@ -569,15 +571,17 @@ final class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEve if (!active) { throw new IllegalStateException(illegalStateMessage); } - if (useCommit) { - try { - connection.rollback(); - } catch (SQLException e) { - throw new PersistenceException(e); + try { + if (useCommit) { + try { + connection.rollback(); + } catch (SQLException e) { + throw new PersistenceException(e); + } } + } finally { + deactivate(); } - // expect AutoCommit so it really has already committed - deactivate(); } /**