mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-03-02 23:38:34 +00:00
Fix a few random crashes when using libsignal-net.
This commit is contained in:
@@ -38,6 +38,7 @@ import org.signal.core.util.logging.Log;
|
||||
import org.signal.core.util.logging.Scrubber;
|
||||
import org.signal.core.util.tracing.Tracer;
|
||||
import org.signal.glide.SignalGlideCodecs;
|
||||
import org.signal.libsignal.net.ChatServiceException;
|
||||
import org.signal.libsignal.protocol.logging.SignalProtocolLoggerProvider;
|
||||
import org.signal.ringrtc.CallManager;
|
||||
import org.thoughtcrime.securesms.apkupdate.ApkUpdateRefreshListener;
|
||||
@@ -363,7 +364,7 @@ public class ApplicationContext extends Application implements AppForegroundObse
|
||||
e = e.getCause();
|
||||
}
|
||||
|
||||
if (wasWrapped && (e instanceof SocketException || e instanceof InterruptedException || e instanceof InterruptedIOException)) {
|
||||
if (wasWrapped && (e instanceof SocketException || e instanceof InterruptedException || e instanceof InterruptedIOException || e instanceof ChatServiceException)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -498,6 +498,7 @@ class LibSignalChatConnection(
|
||||
}
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
override fun sendResponse(response: WebSocketResponseMessage) {
|
||||
if (response.status == 200 && response.message.equals("OK")) {
|
||||
ackSenderForInternalPseudoId[response.id]?.send() ?: Log.w(TAG, "$name [sendResponse] Silently dropped response without available ackSend {id: ${response.id}}")
|
||||
@@ -554,8 +555,10 @@ class LibSignalChatConnection(
|
||||
else -> disconnectReason
|
||||
}
|
||||
|
||||
for (pendingResponse in pendingResponses) {
|
||||
pendingResponse.onError(downstreamThrowable)
|
||||
synchronized(pendingResponses) {
|
||||
for (pendingResponse in pendingResponses) {
|
||||
pendingResponse.onError(downstreamThrowable)
|
||||
}
|
||||
}
|
||||
}
|
||||
chatConnection = null
|
||||
|
||||
Reference in New Issue
Block a user