From 9083359b332f990e922244602bd1901736fbcc14 Mon Sep 17 00:00:00 2001 From: andrew-signal Date: Thu, 29 May 2025 11:57:30 -0400 Subject: [PATCH] Silence noisy double stack trace when a LibSignalChatConnection connect() is canceled. --- .../internal/websocket/LibSignalChatConnection.kt | 8 ++++++++ 1 file changed, 8 insertions(+) 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 b834fdbd49..c1f7876163 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 @@ -32,6 +32,7 @@ import java.io.IOException import java.net.SocketException import java.time.Instant import java.util.Optional +import java.util.concurrent.CancellationException import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors import java.util.concurrent.LinkedBlockingQueue @@ -188,6 +189,13 @@ class LibSignalChatConnection( }, onFailure = { throwable -> CHAT_SERVICE_LOCK.withLock { + if (throwable is CancellationException) { + // We should have transitioned to DISCONNECTED immediately after we canceled chatConnectionFuture + check(state.value == WebSocketConnectionState.DISCONNECTED) + Log.i(TAG, "$name [connect] cancelled") + return@whenComplete + } + Log.w(TAG, "$name [connect] Failure:", throwable) chatConnection = null // Internally, libsignal-net will throw this DeviceDeregisteredException when the HTTP CONNECT