From 304f0002b4c27227b512a3a003de73f0420d76cc Mon Sep 17 00:00:00 2001 From: Weimin Yu Date: Thu, 21 Nov 2024 10:58:26 -0500 Subject: [PATCH] Refactor FlowRunner transaction invocation (#2612) Stop calling `transact` if already in a transaction. --- core/src/main/java/google/registry/flows/FlowRunner.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/google/registry/flows/FlowRunner.java b/core/src/main/java/google/registry/flows/FlowRunner.java index 99b903faa..cdc36b497 100644 --- a/core/src/main/java/google/registry/flows/FlowRunner.java +++ b/core/src/main/java/google/registry/flows/FlowRunner.java @@ -75,7 +75,8 @@ public class FlowRunner { flowReporter.recordToLogs(); } eppMetricBuilder.setCommandNameFromFlow(flowClass.getSimpleName()); - if (!isTransactional) { + // We may already be in a transaction, e.g., when invoked by DeleteExpiredDomainsAction. + if (!isTransactional || jpaTransactionManager.inTransaction()) { return EppOutput.create(flowProvider.get().run()); } try {