diff --git a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java index 7f8bc79f401..b1f84501321 100644 --- a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java +++ b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/RestProtocol.java @@ -61,7 +61,7 @@ public class RestProtocol extends AbstractProxyProtocol { private static final int HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE = 20; private static final int HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL = 20; - private static final int HTTPCLIENT_KEEPALIVEDURATION = 30*1000; + private static final int HTTPCLIENT_KEEPALIVEDURATION = 30 * 1000; private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS = 1000; private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S = 30; @@ -70,7 +70,7 @@ public class RestProtocol extends AbstractProxyProtocol { private final RestServerFactory serverFactory = new RestServerFactory(); // TODO in the future maybe we can just use a single rest client and connection manager - private final List clients = Collections.synchronizedList(new LinkedList()); + private final List clients = Collections.synchronizedList(new LinkedList<>()); private volatile ConnectionMonitor connectionMonitor; @@ -147,6 +147,7 @@ protected T doRefer(Class serviceType, URL url) throws RpcException { connectionManager.setDefaultMaxPerRoute(url.getParameter(Constants.CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE)); connectionMonitor.addConnectionManager(connectionManager); + connectionMonitor.run(); RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(url.getParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT)) .setSocketTimeout(url.getParameter(Constants.TIMEOUT_KEY, Constants.DEFAULT_TIMEOUT)) @@ -239,7 +240,7 @@ public void destroy() { protected String getContextPath(URL url) { String contextPath = url.getPath(); - return contextPath.endsWith("/") ? contextPath.substring(0,contextPath.length()-1) : contextPath; + return contextPath.endsWith("/") ? contextPath.substring(0, contextPath.length() - 1) : contextPath; } protected class ConnectionMonitor extends Thread {