Add test to demonstrate 4.2 not affected by SPR-13185
Issue: SPR-13185
This commit is contained in:
@@ -20,6 +20,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
@@ -404,7 +405,6 @@ public class DefaultSubscriptionRegistryTests {
|
|||||||
// SPR-12665
|
// SPR-12665
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("rawtypes")
|
|
||||||
public void findSubscriptionsReturnsMapSafeToIterate() throws Exception {
|
public void findSubscriptionsReturnsMapSafeToIterate() throws Exception {
|
||||||
|
|
||||||
this.registry.registerSubscription(subscribeMessage("sess1", "1", "/foo"));
|
this.registry.registerSubscription(subscribeMessage("sess1", "1", "/foo"));
|
||||||
@@ -414,7 +414,7 @@ public class DefaultSubscriptionRegistryTests {
|
|||||||
assertNotNull(subscriptions);
|
assertNotNull(subscriptions);
|
||||||
assertEquals(2, subscriptions.size());
|
assertEquals(2, subscriptions.size());
|
||||||
|
|
||||||
Iterator iterator = subscriptions.entrySet().iterator();
|
Iterator<Map.Entry<String, List<String>>> iterator = subscriptions.entrySet().iterator();
|
||||||
iterator.next();
|
iterator.next();
|
||||||
|
|
||||||
this.registry.registerSubscription(subscribeMessage("sess3", "1", "/foo"));
|
this.registry.registerSubscription(subscribeMessage("sess3", "1", "/foo"));
|
||||||
@@ -423,6 +423,25 @@ public class DefaultSubscriptionRegistryTests {
|
|||||||
// no ConcurrentModificationException
|
// no ConcurrentModificationException
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findSubscriptionsReturnsMapSafeToIterateIncludingValues() throws Exception {
|
||||||
|
|
||||||
|
this.registry.registerSubscription(subscribeMessage("sess1", "1", "/foo"));
|
||||||
|
this.registry.registerSubscription(subscribeMessage("sess1", "2", "/foo"));
|
||||||
|
|
||||||
|
MultiValueMap<String, String> allSubscriptions = this.registry.findSubscriptions(createMessage("/foo"));
|
||||||
|
assertNotNull(allSubscriptions);
|
||||||
|
assertEquals(1, allSubscriptions.size());
|
||||||
|
|
||||||
|
Iterator<String> iteratorValues = allSubscriptions.get("sess1").iterator();
|
||||||
|
iteratorValues.next();
|
||||||
|
|
||||||
|
this.registry.unregisterSubscription(unsubscribeMessage("sess1", "2"));
|
||||||
|
|
||||||
|
iteratorValues.next();
|
||||||
|
// no ConcurrentModificationException
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void findSubscriptionsWithConcurrentUnregisterAllSubscriptions() throws Exception {
|
public void findSubscriptionsWithConcurrentUnregisterAllSubscriptions() throws Exception {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user