This is an automated email from the ASF dual-hosted git repository.
mattrpav pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/main by this push:
new ff54849bf4 [#2406] Guard against null region subscriptions in
duplicate suppression (#2407)
ff54849bf4 is described below
commit ff54849bf4b0dfbd7fb2f42ff9067f835eedf612
Author: Matt Pavlovich <[email protected]>
AuthorDate: Wed Aug 5 20:04:13 2026 -0500
[#2406] Guard against null region subscriptions in duplicate suppression
(#2407)
getRegionSubscriptions returns null when the destination's region is not
an AbstractRegion; duplicateSuppressionIsRequired iterated the result
unconditionally, throwing NPE on the advisory path and tearing down the
bridge. Treat a null view as nothing to compare against.
---
.../network/DemandForwardingBridgeSupport.java | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
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 0ca4cc2fce..86dda092d4 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
@@ -1583,17 +1583,21 @@ public abstract class DemandForwardingBridgeSupport
implements NetworkBridge, Br
}
List<ConsumerId> candidateConsumers =
consumerInfo.getNetworkConsumerIds();
+ // null when the destination's region is not an AbstractRegion (no
+ // subscription view available) - nothing to compare against
Collection<Subscription> currentSubs =
getRegionSubscriptions(consumerInfo.getDestination());
- for (Subscription sub : currentSubs) {
- List<ConsumerId> networkConsumers =
sub.getConsumerInfo().getNetworkConsumerIds();
- if (!networkConsumers.isEmpty()) {
- if (matchFound(candidateConsumers, networkConsumers)) {
- if (isInActiveDurableSub(sub)) {
- suppress = false;
- } else {
- suppress = hasLowerPriority(sub,
candidate.getLocalInfo());
+ if (currentSubs != null) {
+ for (Subscription sub : currentSubs) {
+ List<ConsumerId> networkConsumers =
sub.getConsumerInfo().getNetworkConsumerIds();
+ if (!networkConsumers.isEmpty()) {
+ if (matchFound(candidateConsumers, networkConsumers)) {
+ if (isInActiveDurableSub(sub)) {
+ suppress = false;
+ } else {
+ suppress = hasLowerPriority(sub,
candidate.getLocalInfo());
+ }
+ break;
}
- break;
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact