From 7a1f19b96cbdf1d5080ca3b5baed806cdc6ead22 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Tue, 1 Jul 2014 14:22:23 -0400 Subject: [PATCH] Polish --- .../broker/DefaultSubscriptionRegistry.java | 44 +++++++++---------- .../DefaultSubscriptionRegistryTests.java | 5 +++ 2 files changed, 27 insertions(+), 22 deletions(-) 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 a52b881b93..ed102fe0df 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 @@ -187,25 +187,25 @@ public class DefaultSubscriptionRegistry extends AbstractSubscriptionRegistry { synchronized (this.updateCache) { Set destinationsToRemove = new HashSet(); for (Map.Entry> entry : this.updateCache.entrySet()) { - String cachedDestination = entry.getKey(); - MultiValueMap subs = entry.getValue(); - List subsIds = subs.get(sessionId); - if(subsIds != null) { - subsIds.remove(subsId); - if (subsIds.isEmpty()) { - subs.remove(sessionId); + String destination = entry.getKey(); + MultiValueMap sessionMap = entry.getValue(); + List subscriptions = sessionMap.get(sessionId); + if (subscriptions != null) { + subscriptions.remove(subsId); + if (subscriptions.isEmpty()) { + sessionMap.remove(sessionId); } - if (subs.isEmpty()) { - destinationsToRemove.add(cachedDestination); + if (sessionMap.isEmpty()) { + destinationsToRemove.add(destination); } else { - this.accessCache.put(cachedDestination, new LinkedMultiValueMap(subs)); + this.accessCache.put(destination, new LinkedMultiValueMap(sessionMap)); } } } - for (String destinationToRemove : destinationsToRemove) { - this.updateCache.remove(destinationToRemove); - this.accessCache.remove(destinationToRemove); + for (String destination : destinationsToRemove) { + this.updateCache.remove(destination); + this.accessCache.remove(destination); } } } @@ -214,20 +214,20 @@ public class DefaultSubscriptionRegistry extends AbstractSubscriptionRegistry { synchronized (this.updateCache) { Set destinationsToRemove = new HashSet(); for (Map.Entry> entry : this.updateCache.entrySet()) { - String cachedDestination = entry.getKey(); - MultiValueMap subs = entry.getValue(); - if(subs.remove(info.getSessionId()) != null) { - if (subs.isEmpty()) { - destinationsToRemove.add(cachedDestination); + String destination = entry.getKey(); + MultiValueMap sessionMap = entry.getValue(); + if (sessionMap.remove(info.getSessionId()) != null) { + if (sessionMap.isEmpty()) { + destinationsToRemove.add(destination); } else { - this.accessCache.put(cachedDestination,new LinkedMultiValueMap(subs)); + this.accessCache.put(destination, new LinkedMultiValueMap(sessionMap)); } } } - for (String d : destinationsToRemove) { - this.updateCache.remove(d); - this.accessCache.remove(d); + for (String destination : destinationsToRemove) { + this.updateCache.remove(destination); + this.accessCache.remove(destination); } } } diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistryTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistryTests.java index 18593ab8f2..21da6156f5 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistryTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistryTests.java @@ -279,8 +279,13 @@ public class DefaultSubscriptionRegistryTests { this.registry.registerSubscription(subscribeMessage("sess01", "subs02", "/foo")); MultiValueMap actual = this.registry.findSubscriptions(message("/foo")); assertEquals("Expected 1 element", 1, actual.size()); + assertEquals(Arrays.asList("subs01", "subs02"), actual.get("sess01")); this.registry.unregisterSubscription(unsubscribeMessage("sess01", "subs01")); + actual = this.registry.findSubscriptions(message("/foo")); + assertEquals("Expected 1 element", 1, actual.size()); + assertEquals(Arrays.asList("subs02"), actual.get("sess01")); + this.registry.unregisterSubscription(unsubscribeMessage("sess01", "subs02")); actual = this.registry.findSubscriptions(message("/foo")); assertEquals("Expected no element", 0, actual.size());