From 20cecbd5cd21b1c3fef735695dd2fd87e7e8ba43 Mon Sep 17 00:00:00 2001 From: andrew-signal Date: Wed, 19 Feb 2025 10:05:51 -0500 Subject: [PATCH] Fix NPE in libsignal-net sendKeepAlive. --- .../internal/websocket/LibSignalChatConnection.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalChatConnection.kt b/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalChatConnection.kt index a3a3529810..a3fee076ad 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalChatConnection.kt +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalChatConnection.kt @@ -289,7 +289,11 @@ class LibSignalChatConnection( override fun sendKeepAlive() { CHAT_SERVICE_LOCK.withLock { - if (isDead()) { + // This is a stronger check than isDead, to handle the case where chatConnection may be null + // because we are still connecting. + // TODO [andrew]: Decide if this is the right behavior long term, or if we want to queue these + // like we plan to queue other requests long term. + if (state.value != WebSocketConnectionState.CONNECTED) { return }