X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c0aa338d7c8e40874dbc453b3fc3916701762029..e1f4dae5c20b2cb98975e6ba16bc73f2a45423e6:/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcCommandHandler.java diff --git a/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcCommandHandler.java b/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcCommandHandler.java index 3d470820..48eb4a45 100644 --- a/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcCommandHandler.java +++ b/src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcCommandHandler.java @@ -56,7 +56,9 @@ public class SignalJsonRpcCommandHandler { } public JsonNode handleRequest( - final ObjectMapper objectMapper, final String method, ContainerNode params + final ObjectMapper objectMapper, + final String method, + ContainerNode params ) throws JsonRpcException { var command = getCommand(method); if (c != null) { @@ -94,7 +96,7 @@ public class SignalJsonRpcCommandHandler { if (manager == null) { final var managers = c.getManagers(); if (managers.size() == 1) { - manager = managers.get(0); + manager = managers.getFirst(); } } if (manager != null) { @@ -197,7 +199,9 @@ public class SignalJsonRpcCommandHandler { } private JsonNode runCommand( - final ObjectMapper objectMapper, final ContainerNode params, final CommandRunner command + final ObjectMapper objectMapper, + final ContainerNode params, + final CommandRunner command ) throws JsonRpcException { final Object[] result = {null}; final JsonWriter commandJsonWriter = s -> { @@ -229,15 +233,17 @@ public class SignalJsonRpcCommandHandler { case RateLimitErrorException e -> throw new JsonRpcException(new JsonRpcResponse.Error(RATELIMIT_ERROR, e.getMessage(), getErrorDataNode(objectMapper, result))); - case UnexpectedErrorException e -> - throw new JsonRpcException(new JsonRpcResponse.Error(JsonRpcResponse.Error.INTERNAL_ERROR, - e.getMessage(), - getErrorDataNode(objectMapper, result))); + case UnexpectedErrorException e -> { + logger.error("Command execution failed with unexpected error", e); + throw new JsonRpcException(new JsonRpcResponse.Error(JsonRpcResponse.Error.INTERNAL_ERROR, + e.getMessage() + " (" + e.getClass().getSimpleName() + ")", + getErrorDataNode(objectMapper, result))); + } } } catch (Throwable e) { logger.error("Command execution failed", e); throw new JsonRpcException(new JsonRpcResponse.Error(JsonRpcResponse.Error.INTERNAL_ERROR, - e.getMessage(), + e.getMessage() + " (" + e.getClass().getSimpleName() + ")", getErrorDataNode(objectMapper, result))); }