From 7a72adedfa79db3d1118b1cdb587e383ecaa9528 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 20 Jun 2023 19:39:08 +1200 Subject: [PATCH] #3109 JtaTransactionManager - fix getCurrentTransaction() Fix for JtaTransactionManager to allow Wildfly (or other) to throw an Exception when TransactionSynchronizationRegistry.getResource() is called. --- .../server/transaction/JtaTransactionManager.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java index f4b15b77e..90a54993c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java @@ -79,10 +79,15 @@ public final class JtaTransactionManager implements ExternalTransactionManager { @Override public Object getCurrentTransaction() { TransactionSynchronizationRegistry syncRegistry = getSyncRegistry(); - SpiTransaction t = (SpiTransaction) syncRegistry.getResource(EBEAN_TXN_RESOURCE); - if (t != null) { - // we have already seen this transaction - return t; + try { + SpiTransaction t = (SpiTransaction) syncRegistry.getResource(EBEAN_TXN_RESOURCE); + if (t != null) { + // we have already seen this transaction + return t; + } + } catch (Exception e) { + // deem that there is no current transaction + return null; } // check current Ebean transaction