]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/util/ErrorUtils.java
1 package org
.asamk
.signal
.util
;
3 import org
.asamk
.signal
.PlainTextWriter
;
4 import org
.asamk
.signal
.commands
.exceptions
.CommandException
;
5 import org
.asamk
.signal
.commands
.exceptions
.IOErrorException
;
6 import org
.slf4j
.Logger
;
7 import org
.slf4j
.LoggerFactory
;
8 import org
.whispersystems
.signalservice
.api
.messages
.SendMessageResult
;
10 import java
.util
.ArrayList
;
11 import java
.util
.List
;
13 public class ErrorUtils
{
15 private final static Logger logger
= LoggerFactory
.getLogger(ErrorUtils
.class);
17 private ErrorUtils() {
20 public static void handleAssertionError(AssertionError e
) {
21 logger
.warn("If you use an Oracle JRE please check if you have unlimited strength crypto enabled, see README");
24 public static void handleTimestampAndSendMessageResults(
25 PlainTextWriter writer
, long timestamp
, List
<SendMessageResult
> results
26 ) throws CommandException
{
28 writer
.println("{}", timestamp
);
30 var errors
= getErrorMessagesFromSendMessageResults(results
);
31 handleSendMessageResultErrors(errors
);
34 public static List
<String
> getErrorMessagesFromSendMessageResults(List
<SendMessageResult
> results
) {
35 var errors
= new ArrayList
<String
>();
36 for (var result
: results
) {
37 var error
= getErrorMessageFromSendMessageResult(result
);
46 public static String
getErrorMessageFromSendMessageResult(SendMessageResult result
) {
47 if (result
.isNetworkFailure()) {
48 return String
.format("Network failure for \"%s\"", result
.getAddress().getLegacyIdentifier());
49 } else if (result
.isUnregisteredFailure()) {
50 return String
.format("Unregistered user \"%s\"", result
.getAddress().getLegacyIdentifier());
51 } else if (result
.getIdentityFailure() != null) {
52 return String
.format("Untrusted Identity for \"%s\"", result
.getAddress().getLegacyIdentifier());
57 private static void handleSendMessageResultErrors(List
<String
> errors
) throws CommandException
{
58 if (errors
.size() == 0) {
61 var message
= new StringBuilder();
62 message
.append("Failed to send (some) messages:\n");
63 for (var error
: errors
) {
64 message
.append(error
).append("\n");
66 throw new IOErrorException(message
.toString());