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

kerwin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new c78fd24  bug about dolphinscheduler-remote SendAsync (#6972)
c78fd24 is described below

commit c78fd2477633f31f60720cd3477dda4a9f2c7ef8
Author: lyq <[email protected]>
AuthorDate: Wed Nov 24 09:53:22 2021 +0800

    bug about dolphinscheduler-remote SendAsync (#6972)
    
    * bug about SendAsync
---
 .../org/apache/dolphinscheduler/remote/future/ResponseFuture.java     | 4 ++++
 .../apache/dolphinscheduler/remote/handler/NettyClientHandler.java    | 1 +
 2 files changed, 5 insertions(+)

diff --git 
a/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/future/ResponseFuture.java
 
b/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/future/ResponseFuture.java
index f9de653..5e5462c 100644
--- 
a/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/future/ResponseFuture.java
+++ 
b/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/future/ResponseFuture.java
@@ -105,6 +105,10 @@ public class ResponseFuture {
         return FUTURE_TABLE.get(opaque);
     }
 
+    public void removeFuture() {
+        FUTURE_TABLE.remove(opaque);
+    }
+
     /**
      * whether timeout
      *
diff --git 
a/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/handler/NettyClientHandler.java
 
b/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/handler/NettyClientHandler.java
index e122df4..ad9787d 100644
--- 
a/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/handler/NettyClientHandler.java
+++ 
b/dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/handler/NettyClientHandler.java
@@ -136,6 +136,7 @@ public class NettyClientHandler extends 
ChannelInboundHandlerAdapter {
             future.setResponseCommand(command);
             future.release();
             if (future.getInvokeCallback() != null) {
+                future.removeFuture();
                 this.callbackExecutor.submit(future::executeInvokeCallback);
             } else {
                 future.putResponse(command);

Reply via email to