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 83ce18e747ff..1c2c0a45ddf3 100644 --- a/handler/src/main/java/io/netty/handler/ssl/SslHandler.java +++ b/handler/src/main/java/io/netty/handler/ssl/SslHandler.java @@ -1068,8 +1068,9 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { // Add a supressed exception if the handshake was not completed yet. if (isStateSet(STATE_HANDSHAKE_STARTED) && !handshakePromise.isDone()) { - ThrowableUtil.addSuppressed(exception, - new StacklessSSLHandshakeException("Connection closed while SSL/TLS handshake was in progress")); + ThrowableUtil.addSuppressed(exception, StacklessSSLHandshakeException.newInstance( + "Connection closed while SSL/TLS handshake was in progress", + SslHandler.class, "channelInactive")); } // Make sure to release SSLEngine, diff --git a/handler/src/main/java/io/netty/handler/ssl/StacklessSSLHandshakeException.java b/handler/src/main/java/io/netty/handler/ssl/StacklessSSLHandshakeException.java index 3c315892fea7..aef55faf4690 100644 --- a/handler/src/main/java/io/netty/handler/ssl/StacklessSSLHandshakeException.java +++ b/handler/src/main/java/io/netty/handler/ssl/StacklessSSLHandshakeException.java @@ -15,6 +15,8 @@ */ package io.netty.handler.ssl; +import io.netty.util.internal.ThrowableUtil; + import javax.net.ssl.SSLHandshakeException; /** @@ -24,13 +26,7 @@ final class StacklessSSLHandshakeException extends SSLHandshakeException { private static final long serialVersionUID = -1244781947804415549L; - /** - * Constructs an exception reporting an error found by - * an SSL subsystem during handshaking. - * - * @param reason describes the problem. - */ - StacklessSSLHandshakeException(String reason) { + private StacklessSSLHandshakeException(String reason) { super(reason); } @@ -40,4 +36,11 @@ public Throwable fillInStackTrace() { // stack trace as this is a stackless exception. return this; } + + /** + * Creates a new {@link StacklessSSLHandshakeException} which has the origin of the given {@link Class} and method. + */ + static StacklessSSLHandshakeException newInstance(String reason, Class clazz, String method) { + return ThrowableUtil.unknownStackTrace(new StacklessSSLHandshakeException(reason), clazz, method); + } }