```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 an instance of 
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