public abstract class io.netty.handler.ssl.ApplicationProtocolNegotiationHandler extends io.netty.channel.ChannelInboundHandlerAdapter
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: io.netty.handler.ssl.ApplicationProtocolNegotiationHandler
super_class: io.netty.channel.ChannelInboundHandlerAdapter
{
private static final io.netty.util.internal.logging.InternalLogger logger;
descriptor: Lio/netty/util/internal/logging/InternalLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String fallbackProtocol;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/netty/handler/ssl/ApplicationProtocolNegotiationHandler;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
1: putstatic io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
2: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial io.netty.channel.ChannelInboundHandlerAdapter.<init>:()V
1: aload 0
aload 1
ldc "fallbackProtocol"
invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
putfield io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.fallbackProtocol:Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/ssl/ApplicationProtocolNegotiationHandler;
0 3 1 fallbackProtocol Ljava/lang/String;
MethodParameters:
Name Flags
fallbackProtocol
public void userEventTriggered(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.ssl.SslHandshakeCompletionEvent
ifeq 13
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
aload 0
invokeinterface io.netty.channel.ChannelPipeline.remove:(Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
2: aload 2
checkcast io.netty.handler.ssl.SslHandshakeCompletionEvent
astore 3
start local 3 3: aload 3
invokevirtual io.netty.handler.ssl.SslHandshakeCompletionEvent.isSuccess:()Z
ifeq 12
4: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
ldc Lio/netty/handler/ssl/SslHandler;
invokeinterface io.netty.channel.ChannelPipeline.get:(Ljava/lang/Class;)Lio/netty/channel/ChannelHandler;
checkcast io.netty.handler.ssl.SslHandler
astore 4
start local 4 5: aload 4
ifnonnull 7
6: new java.lang.IllegalStateException
dup
ldc "cannot find a SslHandler in the pipeline (required for application-level protocol negotiation)"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: io.netty.handler.ssl.SslHandshakeCompletionEvent io.netty.handler.ssl.SslHandler
StackMap stack:
aload 4
invokevirtual io.netty.handler.ssl.SslHandler.applicationProtocol:()Ljava/lang/String;
astore 5
start local 5 8: aload 0
aload 1
aload 5
ifnull 9
aload 5
goto 10
StackMap locals: io.netty.handler.ssl.ApplicationProtocolNegotiationHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.ssl.SslHandshakeCompletionEvent io.netty.handler.ssl.SslHandler java.lang.String
StackMap stack: io.netty.handler.ssl.ApplicationProtocolNegotiationHandler io.netty.channel.ChannelHandlerContext
9: aload 0
getfield io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.fallbackProtocol:Ljava/lang/String;
StackMap locals: io.netty.handler.ssl.ApplicationProtocolNegotiationHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.ssl.SslHandshakeCompletionEvent io.netty.handler.ssl.SslHandler java.lang.String
StackMap stack: io.netty.handler.ssl.ApplicationProtocolNegotiationHandler io.netty.channel.ChannelHandlerContext java.lang.String
10: invokevirtual io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.configurePipeline:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
end local 5 end local 4 11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual io.netty.handler.ssl.SslHandshakeCompletionEvent.cause:()Ljava/lang/Throwable;
invokevirtual io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.handshakeFailure:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
end local 3 13: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
pop
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/netty/handler/ssl/ApplicationProtocolNegotiationHandler;
0 15 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 15 2 evt Ljava/lang/Object;
3 13 3 handshakeEvent Lio/netty/handler/ssl/SslHandshakeCompletionEvent;
5 11 4 sslHandler Lio/netty/handler/ssl/SslHandler;
8 11 5 protocol Ljava/lang/String;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
evt
protected abstract void configurePipeline(io.netty.channel.ChannelHandlerContext, java.lang.String);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
protocol
protected void handshakeFailure(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "{} TLS handshake failed:"
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 2
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/ssl/ApplicationProtocolNegotiationHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
cause
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic io.netty.handler.ssl.ApplicationProtocolNegotiationHandler.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "{} Failed to select the application-level protocol:"
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 2
invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/ssl/ApplicationProtocolNegotiationHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
cause
}
SourceFile: "ApplicationProtocolNegotiationHandler.java"