From 43bcc95713f14bdf6103d63d2daed66c3e7df502 Mon Sep 17 00:00:00 2001 From: AsamK Date: Fri, 3 Sep 2021 21:30:45 +0200 Subject: [PATCH] Add missing isActive check --- .../manager/storage/sessions/SessionStore.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/sessions/SessionStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/sessions/SessionStore.java index 5738408d..1b94642a 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/sessions/SessionStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/sessions/SessionStore.java @@ -109,11 +109,7 @@ public class SessionStore implements SignalServiceSessionStore { synchronized (cachedSessions) { final var session = loadSessionLocked(key); - if (session == null) { - return false; - } - - return session.hasSenderChain() && session.getSessionVersion() == CiphertextMessage.CURRENT_VERSION; + return isActive(session); } } @@ -158,6 +154,7 @@ public class SessionStore implements SignalServiceSessionStore { return recipientIdToNameMap.keySet() .stream() .flatMap(recipientId -> getKeysLocked(recipientId).stream()) + .filter(key -> isActive(this.loadSessionLocked(key))) .map(key -> new SignalProtocolAddress(recipientIdToNameMap.get(key.recipientId), key.getDeviceId())) .collect(Collectors.toSet()); } @@ -321,6 +318,12 @@ public class SessionStore implements SignalServiceSessionStore { } } + private static boolean isActive(SessionRecord record) { + return record != null + && record.hasSenderChain() + && record.getSessionVersion() == CiphertextMessage.CURRENT_VERSION; + } + private static final class Key { private final RecipientId recipientId; -- 2.50.1