2020import  java .util .Collections ;
2121import  java .util .Iterator ;
2222import  java .util .List ;
23+ import  java .util .Map ;
2324import  java .util .concurrent .CountDownLatch ;
2425import  java .util .concurrent .TimeUnit ;
2526import  java .util .concurrent .atomic .AtomicReference ;
@@ -404,7 +405,6 @@ public void findSubscriptionsNoMatches() {
404405	// SPR-12665 
405406
406407	@ Test 
407- 	@ SuppressWarnings ("rawtypes" )
408408	public  void  findSubscriptionsReturnsMapSafeToIterate () throws  Exception  {
409409
410410		this .registry .registerSubscription (subscribeMessage ("sess1" , "1" , "/foo" ));
@@ -414,7 +414,7 @@ public void findSubscriptionsReturnsMapSafeToIterate() throws Exception {
414414		assertNotNull (subscriptions );
415415		assertEquals (2 , subscriptions .size ());
416416
417- 		Iterator  iterator  = subscriptions .entrySet ().iterator ();
417+ 		Iterator < Map . Entry < String ,  List < String >>>  iterator  = subscriptions .entrySet ().iterator ();
418418		iterator .next ();
419419
420420		this .registry .registerSubscription (subscribeMessage ("sess3" , "1" , "/foo" ));
@@ -423,6 +423,25 @@ public void findSubscriptionsReturnsMapSafeToIterate() throws Exception {
423423		// no ConcurrentModificationException 
424424	}
425425
426+ 	@ Test 
427+ 	public  void  findSubscriptionsReturnsMapSafeToIterateIncludingValues () throws  Exception  {
428+ 
429+ 		this .registry .registerSubscription (subscribeMessage ("sess1" , "1" , "/foo" ));
430+ 		this .registry .registerSubscription (subscribeMessage ("sess1" , "2" , "/foo" ));
431+ 
432+ 		MultiValueMap <String , String > allSubscriptions  = this .registry .findSubscriptions (createMessage ("/foo" ));
433+ 		assertNotNull (allSubscriptions );
434+ 		assertEquals (1 , allSubscriptions .size ());
435+ 
436+ 		Iterator <String > iteratorValues  = allSubscriptions .get ("sess1" ).iterator ();
437+ 		iteratorValues .next ();
438+ 
439+ 		this .registry .unregisterSubscription (unsubscribeMessage ("sess1" , "2" ));
440+ 
441+ 		iteratorValues .next ();
442+ 		// no ConcurrentModificationException 
443+ 	}
444+ 
426445	@ Test 
427446	public  void  findSubscriptionsWithConcurrentUnregisterAllSubscriptions () throws  Exception  {
428447
0 commit comments