From 9c49efeacfd87d2d4409fb000cebd58e1114ec8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=BF=9C=E5=BE=81hd?= Date: Sun, 1 Aug 2021 10:45:59 +0800 Subject: [PATCH] [Dubbo-8172]Not shuwdown ExecutorService when DefaultFuture. closeChannel() (#8188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix 8172 消费者端ExecutorService在运行期间不应该shutdown * add UT --- .../remoting/exchange/support/DefaultFuture.java | 5 ----- .../remoting/exchange/support/DefaultFutureTest.java | 11 +++++++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java index beddc2dc58e..ffd8a9e3656 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java @@ -142,11 +142,6 @@ public static void closeChannel(Channel channel) { if (channel.equals(entry.getValue())) { DefaultFuture future = getFuture(entry.getKey()); if (future != null && !future.isDone()) { - ExecutorService futureExecutor = future.getExecutor(); - if (futureExecutor != null && !futureExecutor.isTerminated()) { - futureExecutor.shutdownNow(); - } - Response disconnectResponse = new Response(future.getId()); disconnectResponse.setStatus(Response.CHANNEL_INACTIVE); disconnectResponse.setErrorMessage("Channel " + diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/support/DefaultFutureTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/support/DefaultFutureTest.java index 67df3b93acf..f89c1190783 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/support/DefaultFutureTest.java +++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/exchange/support/DefaultFutureTest.java @@ -158,6 +158,17 @@ public void interruptSend() throws Exception { Assertions.assertNull(future); } + @Test + public void testClose() throws Exception { + Channel channel = new MockedChannel(); + Request request = new Request(123); + ExecutorService executor = ExtensionLoader.getExtensionLoader(ExecutorRepository.class) + .getDefaultExtension().createExecutorIfAbsent(URL.valueOf("dubbo://127.0.0.1:23456")); + DefaultFuture.newFuture(channel, request, 1000, executor); + DefaultFuture.closeChannel(channel); + Assertions.assertFalse(executor.isTerminated()); + } + /** * mock a default future */