diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java index 501f8c9f396..fed76b4230e 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java @@ -293,7 +293,8 @@ public class DefaultSubscriptionRegistry extends AbstractSubscriptionRegistry { if (getPathMatcher().match(destination, cachedDestination)) { LinkedMultiValueMap subs = entry.getValue(); // Subscription id's may also be populated via getSubscriptions() - if (!subs.containsKey(sessionId) || !subs.get(sessionId).contains(subsId)) { + List subsForSession = subs.get(sessionId); + if (subsForSession == null || !subsForSession.contains(subsId)) { subs.add(sessionId, subsId); this.accessCache.put(cachedDestination, subs.deepCopy()); }