1 package org
.asamk
.signal
.util
;
3 import org
.asamk
.signal
.PlainTextWriter
;
4 import org
.asamk
.signal
.manager
.groups
.GroupIdFormatException
;
5 import org
.asamk
.signal
.manager
.groups
.GroupNotFoundException
;
6 import org
.asamk
.signal
.manager
.groups
.NotAGroupMemberException
;
7 import org
.whispersystems
.signalservice
.api
.messages
.SendMessageResult
;
8 import org
.whispersystems
.signalservice
.api
.util
.InvalidNumberException
;
10 import java
.io
.IOException
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
14 public class ErrorUtils
{
16 private ErrorUtils() {
19 public static void handleAssertionError(AssertionError e
) {
20 System
.err
.println("Failed to send/receive message (Assertion): " + e
.getMessage());
23 "If you use an Oracle JRE please check if you have unlimited strength crypto enabled, see README");
26 public static int handleTimestampAndSendMessageResults(
27 PlainTextWriter writer
,
29 List
<SendMessageResult
> results
30 ) throws IOException
{
32 writer
.println("{}", timestamp
);
34 var errors
= getErrorMessagesFromSendMessageResults(results
);
35 return handleSendMessageResultErrors(errors
);
38 public static List
<String
> getErrorMessagesFromSendMessageResults(List
<SendMessageResult
> results
) {
39 var errors
= new ArrayList
<String
>();
40 for (var result
: results
) {
41 var error
= getErrorMessageFromSendMessageResult(result
);
50 public static String
getErrorMessageFromSendMessageResult(SendMessageResult result
) {
51 if (result
.isNetworkFailure()) {
52 return String
.format("Network failure for \"%s\"", result
.getAddress().getLegacyIdentifier());
53 } else if (result
.isUnregisteredFailure()) {
54 return String
.format("Unregistered user \"%s\"", result
.getAddress().getLegacyIdentifier());
55 } else if (result
.getIdentityFailure() != null) {
56 return String
.format("Untrusted Identity for \"%s\"", result
.getAddress().getLegacyIdentifier());
61 private static int handleSendMessageResultErrors(List
<String
> errors
) {
62 if (errors
.size() == 0) {
65 System
.err
.println("Failed to send (some) messages:");
66 for (var error
: errors
) {
67 System
.err
.println(error
);
72 public static void handleIOException(IOException e
) {
73 System
.err
.println("Failed to send message: " + e
.getMessage());
76 public static void handleGroupNotFoundException(GroupNotFoundException e
) {
77 System
.err
.println("Failed to send to group: " + e
.getMessage());
78 System
.err
.println("Aborting sending.");
81 public static void handleNotAGroupMemberException(NotAGroupMemberException e
) {
82 System
.err
.println("Failed to send to group: " + e
.getMessage());
83 System
.err
.println("Update the group on another device to readd the user to this group.");
84 System
.err
.println("Aborting sending.");
87 public static void handleGroupIdFormatException(GroupIdFormatException e
) {
88 System
.err
.println(e
.getMessage());
89 System
.err
.println("Aborting sending.");
92 public static void handleInvalidNumberException(InvalidNumberException e
) {
93 System
.err
.println("Failed to parse recipient: " + e
.getMessage());
94 System
.err
.println("Aborting sending.");