Remove message listener key only after successfully unsubscribing
This commit is contained in:
parent
fbf6b9826e
commit
eb57d87513
|
@ -384,12 +384,13 @@ public class MessagesCache extends RedisClusterPubSubAdapter<String, String> imp
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeMessageAvailabilityListener(final MessageAvailabilityListener listener) {
|
public void removeMessageAvailabilityListener(final MessageAvailabilityListener listener) {
|
||||||
@Nullable final String queueName = queueNamesByMessageListener.remove(listener);
|
@Nullable final String queueName = queueNamesByMessageListener.get(listener);
|
||||||
|
|
||||||
if (queueName != null) {
|
if (queueName != null) {
|
||||||
unsubscribeFromKeyspaceNotifications(queueName);
|
unsubscribeFromKeyspaceNotifications(queueName);
|
||||||
|
|
||||||
synchronized (messageListenersByQueueName) {
|
synchronized (messageListenersByQueueName) {
|
||||||
|
queueNamesByMessageListener.remove(listener);
|
||||||
messageListenersByQueueName.remove(queueName);
|
messageListenersByQueueName.remove(queueName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue