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

vongosling pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git

commit 0a31a7b27186ddb9d8cb453aef87e4872554f3c6
Author: maowei.ymw <[email protected]>
AuthorDate: Thu Dec 13 17:07:30 2018 +0800

    Release semaphore when timeout
---
 .../java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
index 8dccebc..9b02640 100644
--- 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
+++ 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
@@ -410,7 +410,8 @@ public abstract class NettyRemotingAbstract {
             final SemaphoreReleaseOnlyOnce once = new 
SemaphoreReleaseOnlyOnce(this.semaphoreAsync);
             long costTime = System.currentTimeMillis() - beginStartTime;
             if (timeoutMillis < costTime) {
-                throw new RemotingTooMuchRequestException("invokeAsyncImpl 
call timeout");
+                once.release();
+                throw new RemotingTimeoutException("invokeAsyncImpl call 
timeout");
             }
 
             final ResponseFuture responseFuture = new ResponseFuture(channel, 
opaque, timeoutMillis - costTime, invokeCallback, once);

Reply via email to