public abstract class io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler extends io.netty.channel.SimpleChannelInboundHandler<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
public static final java.lang.String ID;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "websocket-handler"
protected final org.slf4j.Logger LOG;
descriptor: Lorg/slf4j/Logger;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.micronaut.core.bind.ArgumentBinderRegistry<io.micronaut.websocket.bind.WebSocketState> webSocketBinder;
descriptor: Lio/micronaut/core/bind/ArgumentBinderRegistry;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lio/micronaut/core/bind/ArgumentBinderRegistry<Lio/micronaut/websocket/bind/WebSocketState;>;
protected final java.util.Map<java.lang.String, java.lang.Object> uriVariables;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
protected final io.micronaut.websocket.context.WebSocketBean<?> webSocketBean;
descriptor: Lio/micronaut/websocket/context/WebSocketBean;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lio/micronaut/websocket/context/WebSocketBean<*>;
protected final io.micronaut.http.HttpRequest<?> originatingRequest;
descriptor: Lio/micronaut/http/HttpRequest;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lio/micronaut/http/HttpRequest<*>;
protected final io.micronaut.inject.MethodExecutionHandle<?, ?> messageHandler;
descriptor: Lio/micronaut/inject/MethodExecutionHandle;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lio/micronaut/inject/MethodExecutionHandle<**>;
protected final io.micronaut.http.netty.websocket.NettyRxWebSocketSession session;
descriptor: Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry;
descriptor: Lio/micronaut/http/codec/MediaTypeCodecRegistry;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.netty.handler.codec.http.websocketx.WebSocketVersion webSocketVersion;
descriptor: Lio/netty/handler/codec/http/websocketx/WebSocketVersion;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.micronaut.http.netty.websocket.WebSocketSessionRepository webSocketSessionRepository;
descriptor: Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final io.micronaut.core.type.Argument<?> bodyArgument;
descriptor: Lio/micronaut/core/type/Argument;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/micronaut/core/type/Argument<*>;
private final java.util.concurrent.atomic.AtomicBoolean closed;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(io.netty.channel.ChannelHandlerContext, io.micronaut.http.bind.RequestBinderRegistry, io.micronaut.http.codec.MediaTypeCodecRegistry, io.micronaut.websocket.context.WebSocketBean<?>, io.micronaut.http.HttpRequest<?>, java.util.Map<java.lang.String, java.lang.Object>, io.netty.handler.codec.http.websocketx.WebSocketVersion, io.micronaut.http.netty.websocket.WebSocketSessionRepository);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/http/bind/RequestBinderRegistry;Lio/micronaut/http/codec/MediaTypeCodecRegistry;Lio/micronaut/websocket/context/WebSocketBean;Lio/micronaut/http/HttpRequest;Ljava/util/Map;Lio/netty/handler/codec/http/websocketx/WebSocketVersion;Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=16, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:()V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
2: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
3: aload 0
aload 8
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketSessionRepository:Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
4: aload 0
new io.micronaut.websocket.bind.WebSocketStateBinderRegistry
dup
aload 2
invokespecial io.micronaut.websocket.bind.WebSocketStateBinderRegistry.<init>:(Lio/micronaut/http/bind/RequestBinderRegistry;)V
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBinder:Lio/micronaut/core/bind/ArgumentBinderRegistry;
5: aload 0
aload 6
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.uriVariables:Ljava/util/Map;
6: aload 0
aload 4
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
7: aload 0
aload 5
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.originatingRequest:Lio/micronaut/http/HttpRequest;
8: aload 0
aload 4
invokeinterface io.micronaut.websocket.context.WebSocketBean.messageMethod:()Ljava/util/Optional;
aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.micronaut.inject.MethodExecutionHandle
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
9: aload 0
aload 3
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.mediaTypeCodecRegistry:Lio/micronaut/http/codec/MediaTypeCodecRegistry;
10: aload 0
aload 7
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketVersion:Lio/netty/handler/codec/http/websocketx/WebSocketVersion;
11: aload 0
aload 0
aload 1
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.createWebSocketSession:(Lio/netty/channel/ChannelHandlerContext;)Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
12: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
ifnull 55
13: new io.micronaut.core.bind.DefaultExecutableBinder
dup
invokespecial io.micronaut.core.bind.DefaultExecutableBinder.<init>:()V
astore 9
start local 9 14: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
ifnull 26
15: aload 9
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBinder:Lio/micronaut/core/bind/ArgumentBinderRegistry;
new io.micronaut.websocket.bind.WebSocketState
dup
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.originatingRequest:Lio/micronaut/http/HttpRequest;
invokespecial io.micronaut.websocket.bind.WebSocketState.<init>:(Lio/micronaut/websocket/WebSocketSession;Lio/micronaut/http/HttpRequest;)V
invokeinterface io.micronaut.core.bind.ExecutableBinder.tryBind:(Lio/micronaut/core/type/Executable;Lio/micronaut/core/bind/ArgumentBinderRegistry;Ljava/lang/Object;)Lio/micronaut/core/bind/BoundExecutable;
astore 10
start local 10 16: aload 10
invokeinterface io.micronaut.core.bind.BoundExecutable.getUnboundArguments:()Ljava/util/List;
astore 11
start local 11 17: aload 11
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 20
18: aload 0
aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.micronaut.core.type.Argument
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bodyArgument:Lio/micronaut/core/type/Argument;
19: goto 27
20: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.micronaut.http.bind.RequestBinderRegistry io.micronaut.http.codec.MediaTypeCodecRegistry io.micronaut.websocket.context.WebSocketBean io.micronaut.http.HttpRequest java.util.Map io.netty.handler.codec.http.websocketx.WebSocketVersion io.micronaut.http.netty.websocket.WebSocketSessionRepository io.micronaut.core.bind.ExecutableBinder io.micronaut.core.bind.BoundExecutable java.util.List
StackMap stack:
aload 0
aconst_null
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bodyArgument:Lio/micronaut/core/type/Argument;
21: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 23
22: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "WebSocket @OnMessage method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface io.micronaut.websocket.context.WebSocketBean.getTarget:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " should define exactly 1 message parameter, but found 2 possible candidates: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
23: StackMap locals:
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.isOpen:()Z
ifeq 27
24: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
getstatic io.micronaut.websocket.CloseReason.INTERNAL_ERROR:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.close:(Lio/micronaut/websocket/CloseReason;)V
end local 11 end local 10 25: goto 27
26: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bodyArgument:Lio/micronaut/core/type/Argument;
27: StackMap locals:
StackMap stack:
aload 4
invokeinterface io.micronaut.websocket.context.WebSocketBean.openMethod:()Ljava/util/Optional;
astore 10
start local 10 28: aload 10
invokevirtual java.util.Optional.isPresent:()Z
ifeq 56
29: aload 10
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast io.micronaut.inject.MethodExecutionHandle
astore 11
start local 11 30: aconst_null
astore 12
start local 12 31: aload 0
aload 5
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBinder:Lio/micronaut/core/bind/ArgumentBinderRegistry;
aload 11
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bindMethod:(Lio/micronaut/http/HttpRequest;Lio/micronaut/core/bind/ArgumentBinderRegistry;Lio/micronaut/inject/MethodExecutionHandle;Ljava/util/List;)Lio/micronaut/core/bind/BoundExecutable;
astore 12
32: goto 38
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.micronaut.http.bind.RequestBinderRegistry io.micronaut.http.codec.MediaTypeCodecRegistry io.micronaut.websocket.context.WebSocketBean io.micronaut.http.HttpRequest java.util.Map io.netty.handler.codec.http.websocketx.WebSocketVersion io.micronaut.http.netty.websocket.WebSocketSessionRepository io.micronaut.core.bind.ExecutableBinder java.util.Optional io.micronaut.inject.MethodExecutionHandle io.micronaut.core.bind.BoundExecutable
StackMap stack: java.lang.Throwable
33: astore 13
start local 13 34: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 36
35: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error Binding method @OnOpen for WebSocket ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 13
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 13
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
36: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.isOpen:()Z
ifeq 38
37: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
getstatic io.micronaut.websocket.CloseReason.INTERNAL_ERROR:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.close:(Lio/micronaut/websocket/CloseReason;)V
end local 13 38: StackMap locals:
StackMap stack:
aload 12
ifnull 56
39: aload 12
astore 13
start local 13 40: aload 0
aload 13
aload 11
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.invokeExecutable:(Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle;)Ljava/lang/Object;
astore 14
start local 14 41: aload 14
invokestatic io.micronaut.core.async.publisher.Publishers.isConvertibleToPublisher:(Ljava/lang/Object;)Z
ifeq 56
42: aload 0
aload 1
aload 14
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.instrumentPublisher:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/Flowable;
astore 15
start local 15 43: aload 15
44: invokedynamic accept()Lio/reactivex/functions/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$0(Ljava/lang/Object;)V (6)
(Ljava/lang/Object;)V
45: aload 0
aload 4
invokedynamic accept(Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;Lio/micronaut/websocket/context/WebSocketBean;)Lio/reactivex/functions/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$1(Lio/micronaut/websocket/context/WebSocketBean;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Throwable;)V
46: invokedynamic run()Lio/reactivex/functions/Action;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$2()V (6)
()V
47: invokevirtual io.reactivex.Flowable.subscribe:(Lio/reactivex/functions/Consumer;Lio/reactivex/functions/Consumer;Lio/reactivex/functions/Action;)Lio/reactivex/disposables/Disposable;
pop
end local 15 end local 14 end local 13 48: goto 56
StackMap locals:
StackMap stack: java.lang.Throwable
49: astore 13
start local 13 50: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 52
51: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error Opening WebSocket ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 13
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 13
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
52: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.isOpen:()Z
ifeq 56
53: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
getstatic io.micronaut.websocket.CloseReason.INTERNAL_ERROR:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.close:(Lio/micronaut/websocket/CloseReason;)V
end local 13 end local 12 end local 11 end local 10 end local 9 54: goto 56
55: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.micronaut.http.bind.RequestBinderRegistry io.micronaut.http.codec.MediaTypeCodecRegistry io.micronaut.websocket.context.WebSocketBean io.micronaut.http.HttpRequest java.util.Map io.netty.handler.codec.http.websocketx.WebSocketVersion io.micronaut.http.netty.websocket.WebSocketSessionRepository
StackMap stack:
aload 0
aconst_null
putfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bodyArgument:Lio/micronaut/core/type/Argument;
56: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 57 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 57 2 binderRegistry Lio/micronaut/http/bind/RequestBinderRegistry;
0 57 3 mediaTypeCodecRegistry Lio/micronaut/http/codec/MediaTypeCodecRegistry;
0 57 4 webSocketBean Lio/micronaut/websocket/context/WebSocketBean<*>;
0 57 5 request Lio/micronaut/http/HttpRequest<*>;
0 57 6 uriVariables Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
0 57 7 version Lio/netty/handler/codec/http/websocketx/WebSocketVersion;
0 57 8 webSocketSessionRepository Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
14 54 9 binder Lio/micronaut/core/bind/ExecutableBinder<Lio/micronaut/websocket/bind/WebSocketState;>;
16 25 10 bound Lio/micronaut/core/bind/BoundExecutable<**>;
17 25 11 unboundArguments Ljava/util/List<Lio/micronaut/core/type/Argument<*>;>;
28 54 10 executionHandle Ljava/util/Optional<+Lio/micronaut/inject/MethodExecutionHandle<**>;>;
30 54 11 openMethod Lio/micronaut/inject/MethodExecutionHandle<**>;
31 54 12 boundExecutable Lio/micronaut/core/bind/BoundExecutable;
34 38 13 e Ljava/lang/Throwable;
40 48 13 finalBoundExecutable Lio/micronaut/core/bind/BoundExecutable;
41 48 14 result Ljava/lang/Object;
43 48 15 flowable Lio/reactivex/Flowable<*>;
50 54 13 e Ljava/lang/Throwable;
Exception table:
from to target type
31 32 33 Class java.lang.Throwable
39 48 49 Class java.lang.Throwable
Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/http/bind/RequestBinderRegistry;Lio/micronaut/http/codec/MediaTypeCodecRegistry;Lio/micronaut/websocket/context/WebSocketBean<*>;Lio/micronaut/http/HttpRequest<*>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lio/netty/handler/codec/http/websocketx/WebSocketVersion;Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;)V
MethodParameters:
Name Flags
ctx
binderRegistry
mediaTypeCodecRegistry
webSocketBean
request
uriVariables
version
webSocketSessionRepository
public io.micronaut.core.type.Argument<?> getBodyArgument();
descriptor: ()Lio/micronaut/core/type/Argument;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bodyArgument:Lio/micronaut/core/type/Argument;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
Signature: ()Lio/micronaut/core/type/Argument<*>;
public io.micronaut.http.netty.websocket.NettyRxWebSocketSession getSession();
descriptor: ()Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
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=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokeinterface io.micronaut.websocket.context.WebSocketBean.errorMethod:()Ljava/util/Optional;
astore 3
start local 3 1: aload 3
invokevirtual java.util.Optional.isPresent:()Z
ifeq 24
2: aload 3
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast io.micronaut.inject.MethodExecutionHandle
astore 4
start local 4 3: aload 0
4: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.originatingRequest:Lio/micronaut/http/HttpRequest;
5: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBinder:Lio/micronaut/core/bind/ArgumentBinderRegistry;
6: aload 4
7: aload 2
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
8: invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bindMethod:(Lio/micronaut/http/HttpRequest;Lio/micronaut/core/bind/ArgumentBinderRegistry;Lio/micronaut/inject/MethodExecutionHandle;Ljava/util/List;)Lio/micronaut/core/bind/BoundExecutable;
astore 5
start local 5 9: aload 4
invokeinterface io.micronaut.inject.MethodExecutionHandle.getTarget:()Ljava/lang/Object;
astore 6
start local 6 10: aload 5
aload 6
invokeinterface io.micronaut.core.bind.BoundExecutable.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 11: goto 17
end local 7 StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext java.lang.Throwable java.util.Optional io.micronaut.inject.MethodExecutionHandle io.micronaut.core.bind.BoundExecutable java.lang.Object
StackMap stack: java.lang.Exception
12: astore 8
start local 8 13: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 15
14: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error invoking to @OnError handler "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 8
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
15: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext java.lang.Throwable java.util.Optional io.micronaut.inject.MethodExecutionHandle io.micronaut.core.bind.BoundExecutable java.lang.Object top java.lang.Exception
StackMap stack:
aload 0
aload 1
aload 8
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleUnexpected:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
16: return
end local 8 start local 7 17: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext java.lang.Throwable java.util.Optional io.micronaut.inject.MethodExecutionHandle io.micronaut.core.bind.BoundExecutable java.lang.Object java.lang.Object
StackMap stack:
aload 7
invokestatic io.micronaut.core.async.publisher.Publishers.isConvertibleToPublisher:(Ljava/lang/Object;)Z
ifeq 25
18: aload 0
aload 1
aload 7
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.instrumentPublisher:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/Flowable;
astore 8
start local 8 19: aload 8
invokevirtual io.reactivex.Flowable.toList:()Lio/reactivex/Single;
aload 0
aload 6
aload 4
aload 1
invokedynamic accept(Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;Ljava/lang/Object;Lio/micronaut/inject/MethodExecutionHandle;Lio/netty/channel/ChannelHandlerContext;)Lio/reactivex/functions/BiConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$3(Ljava/lang/Object;Lio/micronaut/inject/MethodExecutionHandle;Lio/netty/channel/ChannelHandlerContext;Ljava/util/List;Ljava/lang/Throwable;)V (7)
(Ljava/util/List;Ljava/lang/Throwable;)V
invokevirtual io.reactivex.Single.subscribe:(Lio/reactivex/functions/BiConsumer;)Lio/reactivex/disposables/Disposable;
pop
end local 8 end local 7 end local 6 end local 5 20: goto 25
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext java.lang.Throwable java.util.Optional io.micronaut.inject.MethodExecutionHandle
StackMap stack: io.micronaut.core.bind.exceptions.UnsatisfiedArgumentException
21: pop
22: aload 0
aload 1
aload 2
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleUnexpected:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
end local 4 23: goto 25
24: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleUnexpected:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
25: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 26 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 26 2 cause Ljava/lang/Throwable;
1 26 3 opt Ljava/util/Optional<+Lio/micronaut/inject/MethodExecutionHandle<**>;>;
3 23 4 errorMethod Lio/micronaut/inject/MethodExecutionHandle<**>;
9 20 5 boundExecutable Lio/micronaut/core/bind/BoundExecutable;
10 20 6 target Ljava/lang/Object;
11 12 7 result Ljava/lang/Object;
17 20 7 result Ljava/lang/Object;
13 17 8 e Ljava/lang/Exception;
19 20 8 flowable Lio/reactivex/Flowable<*>;
Exception table:
from to target type
10 11 12 Class java.lang.Exception
3 16 21 Class io.micronaut.core.bind.exceptions.UnsatisfiedArgumentException
17 20 21 Class io.micronaut.core.bind.exceptions.UnsatisfiedArgumentException
MethodParameters:
Name Flags
ctx
cause
public void handlerRemoved(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic io.micronaut.websocket.CloseReason.ABNORMAL_CLOSURE:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleCloseReason:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
protected abstract io.micronaut.http.netty.websocket.NettyRxWebSocketSession createWebSocketSession(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
ctx
protected io.reactivex.Flowable<?> instrumentPublisher(io.netty.channel.ChannelHandlerContext, );
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/Flowable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc Lio/reactivex/Flowable;
invokestatic io.micronaut.core.async.publisher.Publishers.convertPublisher:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast io.reactivex.Flowable
astore 3
start local 3 1: aload 3
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
invokestatic io.reactivex.schedulers.Schedulers.from:(Ljava/util/concurrent/Executor;)Lio/reactivex/Scheduler;
invokevirtual io.reactivex.Flowable.subscribeOn:(Lio/reactivex/Scheduler;)Lio/reactivex/Flowable;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 result Ljava/lang/Object;
1 2 3 actual Lio/reactivex/Flowable<*>;
Signature: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/Flowable<*>;
MethodParameters:
Name Flags
ctx
result
protected invokeExecutable(io.micronaut.core.bind.BoundExecutable, io.micronaut.inject.MethodExecutionHandle<?, ?>);
descriptor: (Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokeinterface io.micronaut.inject.MethodExecutionHandle.getTarget:()Ljava/lang/Object;
invokeinterface io.micronaut.core.bind.BoundExecutable.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 1 1 boundExecutable Lio/micronaut/core/bind/BoundExecutable;
0 1 2 messageHandler Lio/micronaut/inject/MethodExecutionHandle<**>;
Signature: (Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle<**>;)Ljava/lang/Object;
MethodParameters:
Name Flags
boundExecutable
messageHandler
protected void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.http.websocketx.WebSocketFrame
ifeq 3
1: aload 0
aload 1
aload 2
checkcast io.netty.handler.codec.http.websocketx.WebSocketFrame
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleWebSocketFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
pop
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 5 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 5 2 msg Ljava/lang/Object;
MethodParameters:
Name Flags
ctx
msg
protected void handleWebSocketFrame(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame
ifne 1
aload 2
instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
ifeq 57
1: StackMap locals:
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
ifnonnull 9
2: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 4
3: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "WebSocket bean ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokeinterface io.micronaut.websocket.context.WebSocketBean.getTarget:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] received message, but defined no @OnMessage handler. Dropping frame..."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
5: aload 1
6: getstatic io.micronaut.websocket.CloseReason.UNSUPPORTED_DATA:Lio/micronaut/websocket/CloseReason;
7: invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.writeCloseFrameAndTerminate:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
8: goto 71
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.getBodyArgument:()Lio/micronaut/core/type/Argument;
astore 3
start local 3 10: getstatic io.micronaut.core.convert.ConversionService.SHARED:Lio/micronaut/core/convert/ConversionService;
aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
aload 3
invokeinterface io.micronaut.core.convert.ConversionService.convert:(Ljava/lang/Object;Lio/micronaut/core/type/Argument;)Ljava/util/Optional;
astore 4
start local 4 11: aload 4
invokevirtual java.util.Optional.isPresent:()Z
ifne 24
12: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
ldc Lio/micronaut/http/annotation/Consumes;
invokeinterface io.micronaut.inject.MethodExecutionHandle.stringValue:(Ljava/lang/Class;)Ljava/util/Optional;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
io/micronaut/http/MediaType.<init>(Ljava/lang/String;)V (8)
(Ljava/lang/String;)Lio/micronaut/http/MediaType;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
getstatic io.micronaut.http.MediaType.APPLICATION_JSON_TYPE:Lio/micronaut/http/MediaType;
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.micronaut.http.MediaType
astore 5
start local 5 13: goto 17
end local 5 StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame io.micronaut.core.type.Argument java.util.Optional
StackMap stack: java.lang.IllegalArgumentException
14: astore 6
start local 6 15: aload 0
aload 1
aload 6
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.exceptionCaught:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
16: return
end local 6 start local 5 17: StackMap locals: io.micronaut.http.MediaType
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.mediaTypeCodecRegistry:Lio/micronaut/http/codec/MediaTypeCodecRegistry;
aload 5
invokeinterface io.micronaut.http.codec.MediaTypeCodecRegistry.findCodec:(Lio/micronaut/http/MediaType;)Ljava/util/Optional;
aload 3
aload 1
aload 2
invokedynamic apply(Lio/micronaut/core/type/Argument;Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$5(Lio/micronaut/core/type/Argument;Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Lio/micronaut/http/codec/MediaTypeCodec;)Ljava/lang/Object; (6)
(Lio/micronaut/http/codec/MediaTypeCodec;)Ljava/lang/Object;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
astore 4
18: goto 24
StackMap locals:
StackMap stack: io.micronaut.http.codec.CodecException
19: astore 6
start local 6 20: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 22
21: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error Processing WebSocket Message ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual io.micronaut.http.codec.CodecException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
22: StackMap locals: io.micronaut.http.codec.CodecException
StackMap stack:
aload 0
aload 1
aload 6
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.exceptionCaught:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
23: return
end local 6 end local 5 24: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.Optional.isPresent:()Z
ifeq 51
25: aload 4
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
astore 5
start local 5 26: aload 0
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.getSession:()Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
astore 6
start local 6 27: new io.micronaut.core.bind.DefaultExecutableBinder
dup
28: aload 3
aload 5
invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
29: invokespecial io.micronaut.core.bind.DefaultExecutableBinder.<init>:(Ljava/util/Map;)V
astore 7
start local 7 30: aload 7
31: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
32: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBinder:Lio/micronaut/core/bind/ArgumentBinderRegistry;
33: new io.micronaut.websocket.bind.WebSocketState
dup
aload 6
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.originatingRequest:Lio/micronaut/http/HttpRequest;
invokespecial io.micronaut.websocket.bind.WebSocketState.<init>:(Lio/micronaut/websocket/WebSocketSession;Lio/micronaut/http/HttpRequest;)V
34: invokeinterface io.micronaut.core.bind.ExecutableBinder.bind:(Lio/micronaut/core/type/Executable;Lio/micronaut/core/bind/ArgumentBinderRegistry;Ljava/lang/Object;)Lio/micronaut/core/bind/BoundExecutable;
astore 8
start local 8 35: aload 0
aload 8
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandler:Lio/micronaut/inject/MethodExecutionHandle;
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.invokeExecutable:(Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle;)Ljava/lang/Object;
astore 9
start local 9 36: aload 9
invokestatic io.micronaut.core.async.publisher.Publishers.isConvertibleToPublisher:(Ljava/lang/Object;)Z
ifeq 44
37: aload 0
aload 1
aload 9
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.instrumentPublisher:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/Flowable;
astore 10
start local 10 38: aload 10
39: invokedynamic accept()Lio/reactivex/functions/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$6(Ljava/lang/Object;)V (6)
(Ljava/lang/Object;)V
40: aload 0
aload 1
invokedynamic accept(Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;Lio/netty/channel/ChannelHandlerContext;)Lio/reactivex/functions/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$7(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Throwable;)V
41: aload 0
aload 1
aload 5
invokedynamic run(Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/functions/Action;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$8(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (7)
()V
42: invokevirtual io.reactivex.Flowable.subscribe:(Lio/reactivex/functions/Consumer;Lio/reactivex/functions/Consumer;Lio/reactivex/functions/Action;)Lio/reactivex/disposables/Disposable;
pop
end local 10 43: goto 71
44: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame io.micronaut.core.type.Argument java.util.Optional java.lang.Object io.micronaut.http.netty.websocket.NettyRxWebSocketSession io.micronaut.core.bind.ExecutableBinder io.micronaut.core.bind.BoundExecutable java.lang.Object
StackMap stack:
aload 0
aload 1
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
aload 5
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandled:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;Ljava/lang/Object;)V
end local 9 end local 8 45: goto 71
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame io.micronaut.core.type.Argument java.util.Optional java.lang.Object io.micronaut.http.netty.websocket.NettyRxWebSocketSession io.micronaut.core.bind.ExecutableBinder
StackMap stack: java.lang.Throwable
46: astore 8
start local 8 47: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 49
48: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error Processing WebSocket Message ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 8
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
49: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 1
aload 8
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.exceptionCaught:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
end local 8 end local 7 end local 6 end local 5 50: goto 71
51: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame io.micronaut.core.type.Argument java.util.Optional
StackMap stack:
aload 0
52: aload 1
53: getstatic io.micronaut.websocket.CloseReason.UNSUPPORTED_DATA:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.websocket.CloseReason.getCode:()I
54: new java.lang.StringBuilder
dup
getstatic io.micronaut.websocket.CloseReason.UNSUPPORTED_DATA:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.websocket.CloseReason.getReason:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "Received data cannot be converted to target type: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
55: invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.writeCloseFrameAndTerminate:(Lio/netty/channel/ChannelHandlerContext;ILjava/lang/String;)V
end local 4 end local 3 56: goto 71
StackMap locals:
StackMap stack:
57: aload 2
instanceof io.netty.handler.codec.http.websocketx.PingWebSocketFrame
ifeq 61
58: aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.retain:()Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
checkcast io.netty.handler.codec.http.websocketx.PingWebSocketFrame
astore 3
start local 3 59: aload 1
new io.netty.handler.codec.http.websocketx.PongWebSocketFrame
dup
aload 3
invokevirtual io.netty.handler.codec.http.websocketx.PingWebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
invokespecial io.netty.handler.codec.http.websocketx.PongWebSocketFrame.<init>:(Lio/netty/buffer/ByteBuf;)V
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 3 60: goto 71
StackMap locals:
StackMap stack:
61: aload 2
instanceof io.netty.handler.codec.http.websocketx.PongWebSocketFrame
ifeq 63
62: return
63: StackMap locals:
StackMap stack:
aload 2
instanceof io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
ifeq 67
64: aload 2
checkcast io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
astore 3
start local 3 65: aload 0
aload 1
aload 3
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleCloseFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;)V
end local 3 66: goto 71
67: StackMap locals:
StackMap stack:
aload 0
68: aload 1
69: getstatic io.micronaut.websocket.CloseReason.UNSUPPORTED_DATA:Lio/micronaut/websocket/CloseReason;
70: invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.writeCloseFrameAndTerminate:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
71: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 72 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 72 2 msg Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
10 56 3 bodyArgument Lio/micronaut/core/type/Argument<*>;
11 56 4 converted Ljava/util/Optional<*>;
13 14 5 mediaType Lio/micronaut/http/MediaType;
17 24 5 mediaType Lio/micronaut/http/MediaType;
15 17 6 e Ljava/lang/IllegalArgumentException;
20 24 6 e Lio/micronaut/http/codec/CodecException;
26 50 5 v Ljava/lang/Object;
27 50 6 currentSession Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
30 50 7 executableBinder Lio/micronaut/core/bind/ExecutableBinder<Lio/micronaut/websocket/bind/WebSocketState;>;
35 45 8 boundExecutable Lio/micronaut/core/bind/BoundExecutable;
36 45 9 result Ljava/lang/Object;
38 43 10 flowable Lio/reactivex/Flowable<*>;
47 50 8 e Ljava/lang/Throwable;
59 60 3 frame Lio/netty/handler/codec/http/websocketx/PingWebSocketFrame;
65 66 3 cwsf Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
Exception table:
from to target type
12 13 14 Class java.lang.IllegalArgumentException
17 18 19 Class io.micronaut.http.codec.CodecException
30 45 46 Class java.lang.Throwable
MethodParameters:
Name Flags
ctx
msg
protected void messageHandled(io.netty.channel.ChannelHandlerContext, io.micronaut.http.netty.websocket.NettyRxWebSocketSession, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 1 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 1 2 session Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
0 1 3 message Ljava/lang/Object;
MethodParameters:
Name Flags
ctx
session
message
protected void writeCloseFrameAndTerminate(io.netty.channel.ChannelHandlerContext, io.micronaut.websocket.CloseReason);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual io.micronaut.websocket.CloseReason.getCode:()I
istore 3
start local 3 1: aload 2
invokevirtual io.micronaut.websocket.CloseReason.getReason:()Ljava/lang/String;
astore 4
start local 4 2: aload 0
aload 1
iload 3
aload 4
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.writeCloseFrameAndTerminate:(Lio/netty/channel/ChannelHandlerContext;ILjava/lang/String;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 closeReason Lio/micronaut/websocket/CloseReason;
1 4 3 code I
2 4 4 reason Ljava/lang/String;
MethodParameters:
Name Flags
ctx
closeReason
private void handleCloseReason(io.netty.channel.ChannelHandlerContext, io.micronaut.websocket.CloseReason);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 20
1: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 3
2: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
ldc "Closing WebSocket session {} with reason {}"
aload 0
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.getSession:()Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
aload 2
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokeinterface io.micronaut.websocket.context.WebSocketBean.closeMethod:()Ljava/util/Optional;
astore 3
start local 3 4: aload 3
invokevirtual java.util.Optional.isPresent:()Z
ifeq 19
5: aload 3
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast io.micronaut.inject.MethodExecutionHandle
astore 4
start local 4 6: aload 4
invokeinterface io.micronaut.inject.MethodExecutionHandle.getTarget:()Ljava/lang/Object;
astore 5
start local 5 7: aload 0
8: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.originatingRequest:Lio/micronaut/http/HttpRequest;
9: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBinder:Lio/micronaut/core/bind/ArgumentBinderRegistry;
10: aload 4
11: aload 2
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
12: invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.bindMethod:(Lio/micronaut/http/HttpRequest;Lio/micronaut/core/bind/ArgumentBinderRegistry;Lio/micronaut/inject/MethodExecutionHandle;Ljava/util/List;)Lio/micronaut/core/bind/BoundExecutable;
astore 6
start local 6 13: aload 0
aload 1
aload 5
aload 6
aload 4
iconst_1
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.invokeAndClose:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle;Z)V
end local 6 14: goto 20
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext io.micronaut.websocket.CloseReason java.util.Optional io.micronaut.inject.MethodExecutionHandle java.lang.Object
StackMap stack: java.lang.Throwable
15: astore 6
start local 6 16: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 20
17: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error invoking @OnClose handler for WebSocket bean ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 end local 5 end local 4 18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.writeCloseFrameAndTerminate:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
end local 3 20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 21 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 21 2 cr Lio/micronaut/websocket/CloseReason;
4 20 3 opt Ljava/util/Optional<+Lio/micronaut/inject/MethodExecutionHandle<**>;>;
6 18 4 methodExecutionHandle Lio/micronaut/inject/MethodExecutionHandle<**>;
7 18 5 target Ljava/lang/Object;
13 14 6 boundExecutable Lio/micronaut/core/bind/BoundExecutable;
16 18 6 e Ljava/lang/Throwable;
Exception table:
from to target type
7 14 15 Class java.lang.Throwable
MethodParameters:
Name Flags
ctx
cr
private void handleCloseFrame(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new io.micronaut.websocket.CloseReason
dup
aload 2
invokevirtual io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.statusCode:()I
aload 2
invokevirtual io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.reasonText:()Ljava/lang/String;
invokespecial io.micronaut.websocket.CloseReason.<init>:(ILjava/lang/String;)V
astore 3
start local 3 1: aload 0
aload 1
aload 3
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleCloseReason:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cwsf Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
1 3 3 cr Lio/micronaut/websocket/CloseReason;
MethodParameters:
Name Flags
ctx
cwsf
private void invokeAndClose(io.netty.channel.ChannelHandlerContext, , io.micronaut.core.bind.BoundExecutable, io.micronaut.inject.MethodExecutionHandle<?, ?>, );
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 3
aload 4
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.invokeExecutable:(Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle;)Ljava/lang/Object;
astore 6
start local 6 1: goto 7
end local 6 StackMap locals:
StackMap stack: java.lang.Exception
2: astore 7
start local 7 3: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 5
4: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error invoking @OnClose handler "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
5: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.micronaut.core.bind.BoundExecutable io.micronaut.inject.MethodExecutionHandle int top java.lang.Exception
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
6: return
end local 7 start local 6 7: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.micronaut.core.bind.BoundExecutable io.micronaut.inject.MethodExecutionHandle int java.lang.Object
StackMap stack:
aload 6
invokestatic io.micronaut.core.async.publisher.Publishers.isConvertibleToPublisher:(Ljava/lang/Object;)Z
ifeq 11
8: aload 0
aload 1
aload 6
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.instrumentPublisher:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)Lio/reactivex/Flowable;
astore 7
start local 7 9: aload 7
invokevirtual io.reactivex.Flowable.toList:()Lio/reactivex/Single;
aload 0
iload 5
aload 2
aload 1
invokedynamic accept(Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;ZLjava/lang/Object;Lio/netty/channel/ChannelHandlerContext;)Lio/reactivex/functions/BiConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$9(ZLjava/lang/Object;Lio/netty/channel/ChannelHandlerContext;Ljava/util/List;Ljava/lang/Throwable;)V (7)
(Ljava/util/List;Ljava/lang/Throwable;)V
invokevirtual io.reactivex.Single.subscribe:(Lio/reactivex/functions/BiConsumer;)Lio/reactivex/disposables/Disposable;
pop
end local 7 10: goto 12
11: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
12: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 13 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 13 2 target Ljava/lang/Object;
0 13 3 boundExecutable Lio/micronaut/core/bind/BoundExecutable;
0 13 4 methodExecutionHandle Lio/micronaut/inject/MethodExecutionHandle<**>;
0 13 5 isClose Z
1 2 6 result Ljava/lang/Object;
7 13 6 result Ljava/lang/Object;
3 7 7 e Ljava/lang/Exception;
9 10 7 flowable Lio/reactivex/Flowable<*>;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
Signature: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/micronaut/core/bind/BoundExecutable;Lio/micronaut/inject/MethodExecutionHandle<**>;Z)V
MethodParameters:
Name Flags
ctx
target
boundExecutable
methodExecutionHandle
isClose
private io.micronaut.core.bind.BoundExecutable bindMethod(io.micronaut.http.HttpRequest<?>, io.micronaut.core.bind.ArgumentBinderRegistry<io.micronaut.websocket.bind.WebSocketState>, io.micronaut.inject.MethodExecutionHandle<?, ?>, java.util.List<?>);
descriptor: (Lio/micronaut/http/HttpRequest;Lio/micronaut/core/bind/ArgumentBinderRegistry;Lio/micronaut/inject/MethodExecutionHandle;Ljava/util/List;)Lio/micronaut/core/bind/BoundExecutable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
astore 5
start local 5 1: aload 0
aload 5
aload 4
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.prepareBoundVariables:(Lio/micronaut/inject/ExecutableMethod;Ljava/util/List;)Ljava/util/Map;
astore 6
start local 6 2: new io.micronaut.core.bind.DefaultExecutableBinder
dup
3: aload 6
4: invokespecial io.micronaut.core.bind.DefaultExecutableBinder.<init>:(Ljava/util/Map;)V
astore 7
start local 7 5: aload 7
aload 5
aload 2
new io.micronaut.websocket.bind.WebSocketState
dup
aload 0
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.getSession:()Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
aload 1
invokespecial io.micronaut.websocket.bind.WebSocketState.<init>:(Lio/micronaut/websocket/WebSocketSession;Lio/micronaut/http/HttpRequest;)V
invokeinterface io.micronaut.core.bind.ExecutableBinder.bind:(Lio/micronaut/core/type/Executable;Lio/micronaut/core/bind/ArgumentBinderRegistry;Ljava/lang/Object;)Lio/micronaut/core/bind/BoundExecutable;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 6 1 request Lio/micronaut/http/HttpRequest<*>;
0 6 2 binderRegistry Lio/micronaut/core/bind/ArgumentBinderRegistry<Lio/micronaut/websocket/bind/WebSocketState;>;
0 6 3 openMethod Lio/micronaut/inject/MethodExecutionHandle<**>;
0 6 4 parameters Ljava/util/List<*>;
1 6 5 executable Lio/micronaut/inject/ExecutableMethod<**>;
2 6 6 preBound Ljava/util/Map<Lio/micronaut/core/type/Argument<*>;Ljava/lang/Object;>;
5 6 7 executableBinder Lio/micronaut/core/bind/ExecutableBinder<Lio/micronaut/websocket/bind/WebSocketState;>;
Signature: (Lio/micronaut/http/HttpRequest<*>;Lio/micronaut/core/bind/ArgumentBinderRegistry<Lio/micronaut/websocket/bind/WebSocketState;>;Lio/micronaut/inject/MethodExecutionHandle<**>;Ljava/util/List<*>;)Lio/micronaut/core/bind/BoundExecutable;
MethodParameters:
Name Flags
request
binderRegistry
openMethod
parameters
private java.util.Map<io.micronaut.core.type.Argument<?>, java.lang.Object> prepareBoundVariables(io.micronaut.inject.ExecutableMethod<?, ?>, java.util.List<?>);
descriptor: (Lio/micronaut/inject/ExecutableMethod;Ljava/util/List;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: new java.util.HashMap
dup
aload 1
invokeinterface io.micronaut.inject.ExecutableMethod.getArguments:()[Lio/micronaut/core/type/Argument;
arraylength
invokespecial java.util.HashMap.<init>:(I)V
astore 3
start local 3 1: aload 1
invokeinterface io.micronaut.inject.ExecutableMethod.getArguments:()[Lio/micronaut/core/type/Argument;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 11
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.micronaut.inject.ExecutableMethod java.util.List java.util.Map top int int io.micronaut.core.type.Argument[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 4
invokeinterface io.micronaut.core.type.Argument.getType:()Ljava/lang/Class;
astore 8
start local 8 4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 9
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.micronaut.inject.ExecutableMethod java.util.List java.util.Map io.micronaut.core.type.Argument int int io.micronaut.core.type.Argument[] java.lang.Class top java.util.Iterator
StackMap stack:
5: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 9
start local 9 6: aload 8
aload 9
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 9
7: aload 3
aload 4
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: goto 10
end local 9 9: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 8 end local 4 10: StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler io.micronaut.inject.ExecutableMethod java.util.List java.util.Map top int int io.micronaut.core.type.Argument[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
iload 6
if_icmplt 2
12: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 13 1 executable Lio/micronaut/inject/ExecutableMethod<**>;
0 13 2 parameters Ljava/util/List<*>;
1 13 3 preBound Ljava/util/Map<Lio/micronaut/core/type/Argument<*>;Ljava/lang/Object;>;
3 10 4 argument Lio/micronaut/core/type/Argument;
4 10 8 type Ljava/lang/Class;
6 9 9 object Ljava/lang/Object;
Signature: (Lio/micronaut/inject/ExecutableMethod<**>;Ljava/util/List<*>;)Ljava/util/Map<Lio/micronaut/core/type/Argument<*>;Ljava/lang/Object;>;
MethodParameters:
Name Flags
executable
parameters
private void handleUnexpected(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof java.io.IOException
ifeq 4
1: aload 2
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
astore 3
start local 3 2: aload 3
ifnull 4
aload 3
ldc "Connection reset"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
3: return
end local 3 4: StackMap locals:
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 6
5: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Unexpected Exception in WebSocket ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokeinterface io.micronaut.websocket.context.WebSocketBean.getTarget:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
6: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
astore 3
start local 3 7: aload 3
invokeinterface io.netty.channel.Channel.isOpen:()Z
ifeq 10
8: getstatic io.micronaut.websocket.CloseReason.INTERNAL_ERROR:Lio/micronaut/websocket/CloseReason;
astore 4
start local 4 9: aload 0
aload 1
aload 4
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.writeCloseFrameAndTerminate:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/websocket/CloseReason;)V
end local 4 10: StackMap locals: io.netty.channel.Channel
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 11 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 11 2 cause Ljava/lang/Throwable;
2 4 3 msg Ljava/lang/String;
7 11 3 channel Lio/netty/channel/Channel;
9 10 4 internalError Lio/micronaut/websocket/CloseReason;
MethodParameters:
Name Flags
ctx
cause
private void writeCloseFrameAndTerminate(io.netty.channel.ChannelHandlerContext, int, java.lang.String);
descriptor: (Lio/netty/channel/ChannelHandlerContext;ILjava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
dup
iload 2
aload 3
invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:(ILjava/lang/String;)V
astore 4
start local 4 1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
aload 4
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
2: aload 0
aload 1
iload 2
aload 3
invokedynamic operationComplete(Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;Lio/netty/channel/ChannelHandlerContext;ILjava/lang/String;)Lio/netty/util/concurrent/GenericFutureListener;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/netty/util/concurrent/Future;)V
io/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler.lambda$10(Lio/netty/channel/ChannelHandlerContext;ILjava/lang/String;Lio/netty/util/concurrent/Future;)V (7)
(Lio/netty/util/concurrent/Future;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 code I
0 4 3 reason Ljava/lang/String;
1 4 4 closeFrame Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
MethodParameters:
Name Flags
ctx
code
reason
private static void lambda$0(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 o Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
private void lambda$1(io.micronaut.websocket.context.WebSocketBean, java.lang.Throwable);
descriptor: (Lio/micronaut/websocket/context/WebSocketBean;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 2
1: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error Opening WebSocket ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.isOpen:()Z
ifeq 4
3: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
getstatic io.micronaut.websocket.CloseReason.INTERNAL_ERROR:Lio/micronaut/websocket/CloseReason;
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.close:(Lio/micronaut/websocket/CloseReason;)V
4: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 5 2 error Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
private static void lambda$2();
descriptor: ()V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=0, locals=0, args_size=0
0: return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
private void lambda$3(java.lang.Object, io.micronaut.inject.MethodExecutionHandle, io.netty.channel.ChannelHandlerContext, java.util.List, java.lang.Throwable);
descriptor: (Ljava/lang/Object;Lio/micronaut/inject/MethodExecutionHandle;Lio/netty/channel/ChannelHandlerContext;Ljava/util/List;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 4 start local 5 0: aload 5
ifnull 2
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 2
1: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error subscribing to @OnError handler "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface io.micronaut.inject.MethodExecutionHandle.getExecutableMethod:()Lio/micronaut/inject/ExecutableMethod;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 5
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleUnexpected:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
3: return
end local 5 end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 4 4 objects Ljava/util/List<*>;
0 4 5 throwable Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
private static java.lang.Object lambda$5(io.micronaut.core.type.Argument, io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame, io.micronaut.http.codec.MediaTypeCodec);
descriptor: (Lio/micronaut/core/type/Argument;Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Lio/micronaut/http/codec/MediaTypeCodec;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=4
start local 3 0: aload 3
aload 0
new io.micronaut.buffer.netty.NettyByteBufferFactory
dup
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
invokespecial io.micronaut.buffer.netty.NettyByteBufferFactory.<init>:(Lio/netty/buffer/ByteBufAllocator;)V
aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.micronaut.buffer.netty.NettyByteBufferFactory.wrap:(Lio/netty/buffer/ByteBuf;)Lio/micronaut/core/io/buffer/ByteBuffer;
invokeinterface io.micronaut.http.codec.MediaTypeCodec.decode:(Lio/micronaut/core/type/Argument;Lio/micronaut/core/io/buffer/ByteBuffer;)Ljava/lang/Object;
areturn
end local 3 LocalVariableTable:
Start End Slot Name Signature
0 1 3 codec Lio/micronaut/http/codec/MediaTypeCodec;
private static void lambda$6(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 o Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
private void lambda$7(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 2
1: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error Processing WebSocket Message ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.webSocketBean:Lio/micronaut/websocket/context/WebSocketBean;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.exceptionCaught:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 4 2 error Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
private void lambda$8(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 0: aload 0
aload 1
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.session:Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
aload 2
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.messageHandled:(Lio/netty/channel/ChannelHandlerContext;Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;Ljava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
Exceptions:
throws java.lang.Exception
private void lambda$9(boolean, java.lang.Object, io.netty.channel.ChannelHandlerContext, java.util.List, java.lang.Throwable);
descriptor: (ZLjava/lang/Object;Lio/netty/channel/ChannelHandlerContext;Ljava/util/List;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 4 start local 5 0: aload 5
ifnull 4
aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isErrorEnabled:()Z
ifeq 4
1: aload 0
getfield io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.LOG:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error subscribing to @"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
ifeq 2
ldc "OnClose"
goto 3
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler int java.lang.Object io.netty.channel.ChannelHandlerContext java.util.List java.lang.Throwable
StackMap stack: org.slf4j.Logger java.lang.StringBuilder
2: ldc "OnError"
StackMap locals: io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler int java.lang.Object io.netty.channel.ChannelHandlerContext java.util.List java.lang.Throwable
StackMap stack: org.slf4j.Logger java.lang.StringBuilder java.lang.String
3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " handler for WebSocket bean ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
4: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
5: return
end local 5 end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 6 4 objects Ljava/util/List<*>;
0 6 5 throwable Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
private void lambda$10(io.netty.channel.ChannelHandlerContext, int, java.lang.String, io.netty.util.concurrent.Future);
descriptor: (Lio/netty/channel/ChannelHandlerContext;ILjava/lang/String;Lio/netty/util/concurrent/Future;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 4 0: aload 0
aload 1
new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
dup
iload 2
aload 3
invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:(ILjava/lang/String;)V
invokevirtual io.micronaut.http.netty.websocket.AbstractNettyWebSocketHandler.handleCloseFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;)V
return
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/micronaut/http/netty/websocket/AbstractNettyWebSocketHandler;
0 1 4 future Lio/netty/util/concurrent/Future<-Ljava/lang/Void;>;
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Ljava/lang/Object;>;
SourceFile: "AbstractNettyWebSocketHandler.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
RuntimeVisibleAnnotations:
io.micronaut.core.annotation.Internal()