You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2020/01/13 02:16:49 UTC

[dubbo] branch master updated: lazy share connection (#5532)

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new b288ad7  lazy share connection (#5532)
b288ad7 is described below

commit b288ad7e3812d2354e54aa2f20f8127f24586a5e
Author: Haiyang <ha...@163.com>
AuthorDate: Mon Jan 13 10:16:32 2020 +0800

    lazy share connection (#5532)
---
 .../rpc/protocol/dubbo/LazyConnectExchangeClient.java      |  2 +-
 .../dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java | 14 +++++++++-----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java
index 77eae2c..8af87c8 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java
@@ -187,7 +187,7 @@ final class LazyConnectExchangeClient implements ExchangeClient {
         if (client != null) {
             return client.isClosed();
         } else {
-            return true;
+            return false;
         }
     }
 
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
index ec07a87..489d86f 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/test/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvokerAvilableTest.java
@@ -43,7 +43,7 @@ import static org.junit.jupiter.api.Assertions.fail;
  * Check available status for dubboInvoker
  */
 public class DubboInvokerAvilableTest {
-    private static DubboProtocol protocol = DubboProtocol.getDubboProtocol();
+    private static DubboProtocol protocol;
     private static ProxyFactory proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
 
     @BeforeAll
@@ -52,6 +52,7 @@ public class DubboInvokerAvilableTest {
 
     @BeforeEach
     public void setUp() throws Exception {
+        protocol = new DubboProtocol();
     }
 
     @AfterAll
@@ -97,10 +98,10 @@ public class DubboInvokerAvilableTest {
 
         long start = System.currentTimeMillis();
 
-        try{
+        try {
             System.setProperty(SHUTDOWN_WAIT_KEY, "2000");
             protocol.destroy();
-        }finally {
+        } finally {
             System.getProperties().remove(SHUTDOWN_WAIT_KEY);
         }
 
@@ -130,8 +131,11 @@ public class DubboInvokerAvilableTest {
 
         AsyncToSyncInvoker<?> invoker = (AsyncToSyncInvoker) protocol.refer(IDemoService.class, url);
         Assertions.assertTrue(invoker.isAvailable());
+
+        ExchangeClient exchangeClient = getClients((DubboInvoker<?>) invoker.getInvoker())[0];
+        Assertions.assertFalse(exchangeClient.isClosed());
         try {
-            getClients((DubboInvoker<?>) invoker.getInvoker())[0].setAttribute(Constants.CHANNEL_ATTRIBUTE_READONLY_KEY, Boolean.TRUE);
+            exchangeClient.setAttribute(Constants.CHANNEL_ATTRIBUTE_READONLY_KEY, Boolean.TRUE);
             fail();
         } catch (IllegalStateException e) {
 
@@ -141,7 +145,7 @@ public class DubboInvokerAvilableTest {
         Assertions.assertEquals("ok", service.get());
 
         Assertions.assertTrue(invoker.isAvailable());
-        getClients((DubboInvoker<?>) invoker.getInvoker())[0].setAttribute(Constants.CHANNEL_ATTRIBUTE_READONLY_KEY, Boolean.TRUE);
+        exchangeClient.setAttribute(Constants.CHANNEL_ATTRIBUTE_READONLY_KEY, Boolean.TRUE);
         Assertions.assertFalse(invoker.isAvailable());
     }