From 5447ecbcfa8c21203fb490e7f9ebd2072a3ea085 Mon Sep 17 00:00:00 2001 From: Matt Pavlovich Date: Tue, 4 Aug 2026 10:05:30 -0500 Subject: [PATCH] [#2400] Make networkBridgeListener volatile for safe cross-thread publication The listener is set from the connector setup thread and read from transport and executor threads via local snapshots; without volatile the JMM does not guarantee those reads observe the write. --- .../apache/activemq/network/DemandForwardingBridgeSupport.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java b/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java index c8bb1386c5f..bddbb6b6c74 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java +++ b/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java @@ -156,7 +156,7 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br protected final NetworkBridgeStatistics networkBridgeStatistics = new NetworkBridgeStatistics(); - private NetworkBridgeListener networkBridgeListener; + private volatile NetworkBridgeListener networkBridgeListener; private boolean createdByDuplex; private BrokerInfo localBrokerInfo; private BrokerInfo remoteBrokerInfo;