```java
                for (ExchangeClient client : clients) {
                    try {
                        client.close(ConfigUtils.getServerShutdownTimeout());
                    } catch (Throwable t) {
                        logger.warn(t.getMessage(), t);
                    }
                }
```

I have double checked that `client.close();` will not actually close the client 
and any resources. Because the Client is a ReferenceCountExchangeClient and it 
will only close when there's no Invoker other than this one is using it, while 
`rerefer` must happens before `destroyUnusedInvokers`, so there will at least 
two invokers refering the client instance when close method is called.

```java
 @Override
    public void close(int timeout) {
        if (refenceCount.decrementAndGet() <= 0) {
            if (timeout == 0) {
                client.close();
            } else {
                client.close(timeout);
            }
            client = replaceWithLazyClient();
        }
    }
```


[ Full content available at: 
https://github.com/apache/incubator-dubbo/pull/2679 ]
This message was relayed via gitbox.apache.org for 
[email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to