From fd25e2f4680c968ea713e607c10c6a2f7c4fcaac Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 28 Nov 2025 10:24:21 +0100 Subject: [PATCH] Use concurrent set for reactive transaction synchronizations Closes gh-35921 --- .../reactive/TransactionSynchronizationManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionSynchronizationManager.java b/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionSynchronizationManager.java index 267a6771052..ea467311746 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionSynchronizationManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionSynchronizationManager.java @@ -18,10 +18,10 @@ package org.springframework.transaction.reactive; import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; import org.jspecify.annotations.Nullable; import reactor.core.publisher.Mono; @@ -192,7 +192,7 @@ public class TransactionSynchronizationManager { if (isSynchronizationActive()) { throw new IllegalStateException("Cannot activate transaction synchronization - already active"); } - this.transactionContext.setSynchronizations(new LinkedHashSet<>()); + this.transactionContext.setSynchronizations(new CopyOnWriteArraySet<>()); } /**