From adb9e2173f8e3ed77973220412a84016bc2daa8e Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 4 May 2026 14:24:06 -0400 Subject: [PATCH] Reroute ISE to NoSessionException. --- .../signalservice/api/crypto/EnvelopeContent.java | 2 +- .../signalservice/api/crypto/SignalSessionCipher.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/EnvelopeContent.java b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/EnvelopeContent.java index 6e5eace919..3c8085f942 100644 --- a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/EnvelopeContent.java +++ b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/EnvelopeContent.java @@ -153,7 +153,7 @@ public interface EnvelopeContent { } @Override - public OutgoingPushMessage processUnsealedSender(SignalSessionCipher sessionCipher, SignalProtocolAddress destination) { + public OutgoingPushMessage processUnsealedSender(SignalSessionCipher sessionCipher, SignalProtocolAddress destination) throws NoSessionException { String body = Base64.encodeWithPadding(plaintextContent.serialize()); int remoteRegistrationId = sessionCipher.getRemoteRegistrationId(); diff --git a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java index 201302a266..39025315cb 100644 --- a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java +++ b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java @@ -45,9 +45,13 @@ public class SignalSessionCipher { } } - public int getRemoteRegistrationId() { + public int getRemoteRegistrationId() throws NoSessionException { try (SignalSessionLock.Lock unused = lock.acquire()) { - return cipher.getRemoteRegistrationId(); + try { + return cipher.getRemoteRegistrationId(); + } catch (IllegalStateException e) { + throw new NoSessionException(e.getMessage()); + } } }