X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/62687d103fab1ade650b920008060c220361d581..2e74acaabe9e24dda980c19ac174be10157f4578:/src/main/java/org/asamk/signal/jsonrpc/JsonRpcReader.java diff --git a/src/main/java/org/asamk/signal/jsonrpc/JsonRpcReader.java b/src/main/java/org/asamk/signal/jsonrpc/JsonRpcReader.java index 6e58b23c..5b641266 100644 --- a/src/main/java/org/asamk/signal/jsonrpc/JsonRpcReader.java +++ b/src/main/java/org/asamk/signal/jsonrpc/JsonRpcReader.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ContainerNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ValueNode; import org.asamk.signal.util.Util; @@ -39,7 +40,7 @@ public class JsonRpcReader { if (message == null) break; if (message instanceof final JsonRpcRequest jsonRpcRequest) { - logger.debug("Received json rpc request, method: " + jsonRpcRequest.method); + logger.debug("Received json rpc request, method: " + jsonRpcRequest.getMethod()); final var response = handleRequest(requestHandler, jsonRpcRequest); if (response != null) { jsonRpcSender.sendResponse(response); @@ -153,6 +154,10 @@ public class JsonRpcReader { } private JsonRpcRequest parseJsonRpcRequest(final JsonNode input) throws JsonRpcException { + if (input instanceof ObjectNode i && input.has("params") && input.get("params").isNull()) { + // Workaround for clients that send a null params field instead of omitting it + i.remove("params"); + } JsonRpcRequest request; try { request = objectMapper.treeToValue(input, JsonRpcRequest.class);