[#2358] SslHandler.safeClose(...) may not notify the ChannelPromise
Motivation: In SslHandler.safeClose(...) we attach a ChannelFutureListener to the flushFuture and will notify the ChannelPromise which was used for close(...) in it. The problem here is that we only call ChannelHandlerContext.close(ChannelPromise) if Channel.isActive() is true and otherwise not notify it at all. We should just call ChannelHandlerContext.close(ChannelPromise) in all cases. Modifications: Always call ChannelHandlerContext.close(ChannelPromise) in the ChannelFutureListeiner Result: ChannelPromise used for close the Channel is notified in all cases
This commit is contained in:
parent
ce52b04d4f
commit
7e5ce2a7b4
@ -1090,10 +1090,10 @@ public class SslHandler extends ByteToMessageDecoder {
|
||||
if (timeoutFuture != null) {
|
||||
timeoutFuture.cancel(false);
|
||||
}
|
||||
if (ctx.channel().isActive()) {
|
||||
// Trigger the close in all cases to make sure the promise is notified
|
||||
// See https://github.com/netty/netty/issues/2358
|
||||
ctx.close(promise);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user