X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/caa4fa0180a84cca10a1b363d25147d03ccb0387..6cc3a6f5614632c854430186ebaa4938342551e1:/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 3609163c..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) { @@ -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))); }