@@ -69,7 +69,7 @@ public void registerSubscription() {
69
69
70
70
MultiValueMap <String , String > actual = this .registry .findSubscriptions (message (dest ));
71
71
assertEquals ("Expected one element " + actual , 1 , actual .size ());
72
- assertEquals (Arrays . asList (subsId ), actual .get (sessId ));
72
+ assertEquals (Collections . singletonList (subsId ), actual .get (sessId ));
73
73
}
74
74
75
75
@ Test
@@ -116,7 +116,7 @@ public void registerSubscriptionWithDestinationPattern() {
116
116
117
117
MultiValueMap <String , String > actual = this .registry .findSubscriptions (message (dest ));
118
118
assertEquals ("Expected one element " + actual , 1 , actual .size ());
119
- assertEquals (Arrays . asList (subsId ), actual .get (sessId ));
119
+ assertEquals (Collections . singletonList (subsId ), actual .get (sessId ));
120
120
}
121
121
122
122
@ Test // SPR-11657
@@ -143,34 +143,34 @@ public void registerSubscriptionsWithSimpleAndPatternDestinations() {
143
143
actual = this .registry .findSubscriptions (message ("/topic/PRICE.STOCK.NASDAQ.IBM" ));
144
144
assertEquals (2 , actual .size ());
145
145
assertEquals (Arrays .asList (subs2 , subs1 ), actual .get (sess1 ));
146
- assertEquals (Arrays . asList (subs1 ), actual .get (sess2 ));
146
+ assertEquals (Collections . singletonList (subs1 ), actual .get (sess2 ));
147
147
148
148
this .registry .unregisterAllSubscriptions (sess1 );
149
149
150
150
actual = this .registry .findSubscriptions (message ("/topic/PRICE.STOCK.NASDAQ.IBM" ));
151
151
assertEquals (1 , actual .size ());
152
- assertEquals (Arrays . asList (subs1 ), actual .get (sess2 ));
152
+ assertEquals (Collections . singletonList (subs1 ), actual .get (sess2 ));
153
153
154
154
this .registry .registerSubscription (subscribeMessage (sess1 , subs1 , "/topic/PRICE.STOCK.*.IBM" ));
155
155
this .registry .registerSubscription (subscribeMessage (sess1 , subs2 , "/topic/PRICE.STOCK.NASDAQ.IBM" ));
156
156
157
157
actual = this .registry .findSubscriptions (message ("/topic/PRICE.STOCK.NASDAQ.IBM" ));
158
158
assertEquals (2 , actual .size ());
159
159
assertEquals (Arrays .asList (subs1 , subs2 ), actual .get (sess1 ));
160
- assertEquals (Arrays . asList (subs1 ), actual .get (sess2 ));
160
+ assertEquals (Collections . singletonList (subs1 ), actual .get (sess2 ));
161
161
162
162
this .registry .unregisterSubscription (unsubscribeMessage (sess1 , subs2 ));
163
163
164
164
actual = this .registry .findSubscriptions (message ("/topic/PRICE.STOCK.NASDAQ.IBM" ));
165
165
assertEquals (2 , actual .size ());
166
- assertEquals (Arrays . asList (subs1 ), actual .get (sess1 ));
167
- assertEquals (Arrays . asList (subs1 ), actual .get (sess2 ));
166
+ assertEquals (Collections . singletonList (subs1 ), actual .get (sess1 ));
167
+ assertEquals (Collections . singletonList (subs1 ), actual .get (sess2 ));
168
168
169
169
this .registry .unregisterSubscription (unsubscribeMessage (sess1 , subs1 ));
170
170
171
171
actual = this .registry .findSubscriptions (message ("/topic/PRICE.STOCK.NASDAQ.IBM" ));
172
172
assertEquals (1 , actual .size ());
173
- assertEquals (Arrays . asList (subs1 ), actual .get (sess2 ));
173
+ assertEquals (Collections . singletonList (subs1 ), actual .get (sess2 ));
174
174
175
175
this .registry .unregisterSubscription (unsubscribeMessage (sess2 , subs1 ));
176
176
@@ -222,13 +222,13 @@ public void registerSubscriptionWithDestinationPatternRegex() {
222
222
MultiValueMap <String , String > actual = this .registry .findSubscriptions (message );
223
223
224
224
assertEquals ("Expected one element " + actual , 1 , actual .size ());
225
- assertEquals (Arrays . asList (subsId ), actual .get (sessId ));
225
+ assertEquals (Collections . singletonList (subsId ), actual .get (sessId ));
226
226
227
227
message = message ("/topic/PRICE.STOCK.NASDAQ.MSFT" );
228
228
actual = this .registry .findSubscriptions (message );
229
229
230
230
assertEquals ("Expected one element " + actual , 1 , actual .size ());
231
- assertEquals (Arrays . asList (subsId ), actual .get (sessId ));
231
+ assertEquals (Collections . singletonList (subsId ), actual .get (sessId ));
232
232
233
233
message = message ("/topic/PRICE.STOCK.NASDAQ.VMW" );
234
234
actual = this .registry .findSubscriptions (message );
@@ -249,7 +249,7 @@ public void registerTwiceAndUnregisterSubscriptions() {
249
249
250
250
actual = this .registry .findSubscriptions (message ("/foo" ));
251
251
assertEquals ("Expected 1 element" , 1 , actual .size ());
252
- assertEquals (Arrays . asList ("subs02" ), actual .get ("sess01" ));
252
+ assertEquals (Collections . singletonList ("subs02" ), actual .get ("sess01" ));
253
253
254
254
this .registry .unregisterSubscription (unsubscribeMessage ("sess01" , "subs02" ));
255
255
@@ -345,6 +345,22 @@ public void findSubscriptionsReturnsMapSafeToIterateIncludingValues() throws Exc
345
345
// no ConcurrentModificationException
346
346
}
347
347
348
+ @ Test // SPR-13555
349
+ public void cacheLimitExceeded () throws Exception {
350
+ this .registry .setCacheLimit (1 );
351
+ this .registry .registerSubscription (subscribeMessage ("sess1" , "1" , "/foo" ));
352
+ this .registry .registerSubscription (subscribeMessage ("sess1" , "2" , "/bar" ));
353
+
354
+ assertEquals (1 , this .registry .findSubscriptions (message ("/foo" )).size ());
355
+ assertEquals (1 , this .registry .findSubscriptions (message ("/bar" )).size ());
356
+
357
+ this .registry .registerSubscription (subscribeMessage ("sess2" , "1" , "/foo" ));
358
+ this .registry .registerSubscription (subscribeMessage ("sess2" , "2" , "/bar" ));
359
+
360
+ assertEquals (2 , this .registry .findSubscriptions (message ("/foo" )).size ());
361
+ assertEquals (2 , this .registry .findSubscriptions (message ("/bar" )).size ());
362
+ }
363
+
348
364
349
365
private Message <?> subscribeMessage (String sessionId , String subscriptionId , String destination ) {
350
366
SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor .create (SimpMessageType .SUBSCRIBE );
0 commit comments