diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcMessageReceiver.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcMessageReceiver.java index 960b473421..16b759b086 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcMessageReceiver.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/commons/JsonRpcMessageReceiver.java @@ -70,7 +70,7 @@ public class JsonRpcMessageReceiver implements WebSocketMessageReceiver { List messages = jsonRpcUnmarshaller.unmarshalArray(message); for (String innerMessage : messages) { if (jsonRpcQualifier.isJsonRpcRequest(innerMessage)) { - requestProcessor.process(() -> processRequest(endpointId, innerMessage)); + requestProcessor.process(new ProcessRequestTask(endpointId, innerMessage)); } else if (jsonRpcQualifier.isJsonRpcResponse(innerMessage)) { processResponse(endpointId, innerMessage); } else { @@ -91,18 +91,35 @@ public class JsonRpcMessageReceiver implements WebSocketMessageReceiver { responseDispatcher.dispatch(endpointId, response); } - private void processRequest(String endpointId, String innerMessage) { - JsonRpcRequest request = null; - try { - request = jsonRpcUnmarshaller.unmarshalRequest(innerMessage); - requestDispatcher.dispatch(endpointId, request); - } catch (JsonRpcException e) { - if (request == null || request.getId() == null) { - errorTransmitter.transmit(endpointId, e); - } else { - errorTransmitter.transmit( - endpointId, new JsonRpcException(e.getCode(), e.getMessage(), request.getId())); + private class ProcessRequestTask implements Runnable { + + private final String endpointId; + private final String innerMessage; + + public ProcessRequestTask(String endpointId, String innerMessage) { + this.endpointId = endpointId; + this.innerMessage = innerMessage; + } + + @Override + public void run() { + JsonRpcRequest request = null; + try { + request = jsonRpcUnmarshaller.unmarshalRequest(innerMessage); + requestDispatcher.dispatch(endpointId, request); + } catch (JsonRpcException e) { + if (request == null || request.getId() == null) { + errorTransmitter.transmit(endpointId, e); + } else { + errorTransmitter.transmit( + endpointId, new JsonRpcException(e.getCode(), e.getMessage(), request.getId())); + } } } + + @Override + public String toString() { + return "JsonRPC request `" + innerMessage + "` for " + endpointId; + } } } diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideRequestProcessor.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideRequestProcessor.java index 8d4034cff3..3cf87840e7 100644 --- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideRequestProcessor.java +++ b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/jsonrpc/impl/ServerSideRequestProcessor.java @@ -42,7 +42,7 @@ public class ServerSideRequestProcessor implements RequestProcessor { public ServerSideRequestProcessor( @Named("che.core.jsonrpc.processor_max_pool_size") int maxPoolSize) { this.maxPoolSize = maxPoolSize; - LOG.info(" che.core.jsonrpc.processor_max_pool_siz {} ", maxPoolSize); + LOG.debug("che.core.jsonrpc.processor_max_pool_size {} ", maxPoolSize); } @PostConstruct @@ -59,7 +59,7 @@ public class ServerSideRequestProcessor implements RequestProcessor { 0, maxPoolSize, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(), factory); ((ThreadPoolExecutor) executorService) .setRejectedExecutionHandler( - (r, executor) -> LOG.warn("Message {} rejected for execution in {}", r, executor)); + (r, executor) -> LOG.warn("Message {} rejected for execution", r)); } @PreDestroy