From baf98accd0bae8248e201e915d985fffcbe5ad90 Mon Sep 17 00:00:00 2001 From: Ravi Khadiwala Date: Tue, 25 Jul 2023 15:05:00 -0500 Subject: [PATCH] acquire lock before checking message listeners in MessagesCache --- .../whispersystems/textsecuregcm/storage/MessagesCache.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java index c3c095061..52e04b858 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java @@ -388,7 +388,10 @@ public class MessagesCache extends RedisClusterPubSubAdapter imp } public void removeMessageAvailabilityListener(final MessageAvailabilityListener listener) { - @Nullable final String queueName = queueNamesByMessageListener.get(listener); + @Nullable final String queueName; + synchronized (messageListenersByQueueName) { + queueName = queueNamesByMessageListener.get(listener); + } if (queueName != null) { unsubscribeFromKeyspaceNotifications(queueName);