- } else if (message instanceof JsonRpcResponse jsonRpcResponse) {
- responseHandler.accept(jsonRpcResponse);
- } else {
- final var messages = ((JsonRpcBatchMessage) message).getMessages();
- final var responseList = new ArrayList<JsonRpcResponse>(messages.size());
- final var executor = Executors.newFixedThreadPool(10);
- try {
- final var lock = new ReentrantLock();
- messages.forEach(jsonNode -> {
- final JsonRpcRequest request;
- try {
- request = parseJsonRpcRequest(jsonNode);
- } catch (JsonRpcException e) {
- final var response = JsonRpcResponse.forError(e.getError(), getId(jsonNode));
- lock.lock();
+ case JsonRpcResponse jsonRpcResponse -> responseHandler.accept(jsonRpcResponse);
+ case JsonRpcBatchMessage jsonRpcBatchMessage -> {
+ final var messages = jsonRpcBatchMessage.getMessages();
+ final var responseList = new ArrayList<JsonRpcResponse>(messages.size());
+ try (final var executor = Executors.newCachedThreadPool()) {
+ final var lock = new ReentrantLock();
+ messages.forEach(jsonNode -> {
+ final JsonRpcRequest request;