diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java b/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java index 3773982666b..fa8026b8903 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java @@ -38,8 +38,16 @@ public interface ExecutorRepository { */ ExecutorService createExecutorIfAbsent(URL url); + /** + * Be careful,The semantics of this method are getOrDefaultExecutor + * + * @param url + * @return + */ ExecutorService getExecutor(URL url); + + /** * Modify some of the threadpool's properties according to the url, for example, coreSize, maxSize, ... * diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java index b47e029bb5a..881303f7efd 100644 --- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java +++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java @@ -126,14 +126,9 @@ protected void initChannel(Channel ch) { private Executor lookupExecutor(URL url) { - ExecutorRepository executorRepository = url.getOrDefaultApplicationModel() + return url.getOrDefaultApplicationModel() .getExtensionLoader(ExecutorRepository.class) - .getDefaultExtension(); - Executor urlExecutor = executorRepository.getExecutor(url); - if (urlExecutor == null) { - urlExecutor = executorRepository.createExecutorIfAbsent(url); - } - return urlExecutor; + .getDefaultExtension().getExecutor(url); } @Override diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleProtocol.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleProtocol.java index 8454250afe8..91605e6bc6a 100644 --- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleProtocol.java +++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleProtocol.java @@ -120,6 +120,10 @@ public void afterUnExport() { triBuiltinService.getHealthStatusManager() .setStatus(url.getServiceInterface(), HealthCheckResponse.ServingStatus.SERVING); + // init + url.getOrDefaultApplicationModel().getExtensionLoader(ExecutorRepository.class) + .getDefaultExtension() + .createExecutorIfAbsent(url); PortUnificationExchanger.bind(invoker.getUrl()); return exporter; }