From 8891b6c9306f05c192cd346c003fa1bb54efbf79 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 11 Jun 2020 12:08:40 -0400 Subject: [PATCH] Properly throw UnregisteredUserException in SignalServicePipe. --- .../signalservice/api/SignalServiceMessagePipe.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java index 35cd7f72f7..93f08432fd 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessagePipe.java @@ -25,6 +25,7 @@ import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; import org.whispersystems.signalservice.api.push.SignalServiceAddress; import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; import org.whispersystems.signalservice.api.push.exceptions.NotFoundException; +import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; import org.whispersystems.signalservice.api.util.CredentialsProvider; import org.whispersystems.signalservice.internal.push.AttachmentV2UploadAttributes; import org.whispersystems.signalservice.internal.push.AttachmentV3UploadAttributes; @@ -180,7 +181,9 @@ public class SignalServiceMessagePipe { ListenableFuture response = websocket.sendRequest(requestMessage); return FutureTransformers.map(response, value -> { - if (value.getStatus() < 200 || value.getStatus() >= 300) { + if (value.getStatus() == 404) { + throw new UnregisteredUserException(list.getDestination(), new NotFoundException("not found")); + } else if (value.getStatus() < 200 || value.getStatus() >= 300) { throw new IOException("Non-successful response: " + value.getStatus()); }