From 4e60c395a9f0903d763eda0998990b5e5f57bcbc Mon Sep 17 00:00:00 2001 From: Jeff Pinner Date: Sun, 24 Mar 2013 14:58:28 -0700 Subject: [PATCH] Fix SslHandler handshake timeout cancellation bug --- .../main/java/io/netty/handler/ssl/SslHandler.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/handler/src/main/java/io/netty/handler/ssl/SslHandler.java b/handler/src/main/java/io/netty/handler/ssl/SslHandler.java index 2ec69f3cde..2406f98449 100644 --- a/handler/src/main/java/io/netty/handler/ssl/SslHandler.java +++ b/handler/src/main/java/io/netty/handler/ssl/SslHandler.java @@ -314,13 +314,19 @@ public class SslHandler timeoutFuture = null; } + promise.addListener(new ChannelFutureListener() { + @Override + public void operationComplete(ChannelFuture f) throws Exception { + if (timeoutFuture != null) { + timeoutFuture.cancel(false); + } + } + }); + ctx.executor().execute(new Runnable() { @Override public void run() { try { - if (timeoutFuture != null) { - timeoutFuture.cancel(false); - } engine.beginHandshake(); handshakePromises.add(promise); flush0(ctx, ctx.newPromise(), true);