public class io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe extends io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe
super_class: io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe
{
final io.netty.channel.nio.AbstractNioByteChannel this$0;
descriptor: Lio/netty/channel/nio/AbstractNioByteChannel;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
protected void <init>(io.netty.channel.nio.AbstractNioByteChannel);
descriptor: (Lio/netty/channel/nio/AbstractNioByteChannel;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
aload 0
aload 1
invokespecial io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.<init>:(Lio/netty/channel/nio/AbstractNioChannel;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe;
MethodParameters:
Name Flags
this$0 final
private void closeOnRead(io.netty.channel.ChannelPipeline);
descriptor: (Lio/netty/channel/ChannelPipeline;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.isInputShutdown0:()Z
ifne 7
1: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.config:()Lio/netty/channel/ChannelConfig;
invokestatic io.netty.channel.nio.AbstractNioByteChannel.isAllowHalfClosure:(Lio/netty/channel/ChannelConfig;)Z
ifeq 5
2: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.shutdownInput:()Lio/netty/channel/ChannelFuture;
pop
3: aload 1
getstatic io.netty.channel.socket.ChannelInputShutdownEvent.INSTANCE:Lio/netty/channel/socket/ChannelInputShutdownEvent;
invokeinterface io.netty.channel.ChannelPipeline.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
pop
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
6: goto 9
7: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
iconst_1
putfield io.netty.channel.nio.AbstractNioByteChannel.inputClosedSeenErrorOnRead:Z
8: aload 1
getstatic io.netty.channel.socket.ChannelInputShutdownReadComplete.INSTANCE:Lio/netty/channel/socket/ChannelInputShutdownReadComplete;
invokeinterface io.netty.channel.ChannelPipeline.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
pop
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe;
0 10 1 pipeline Lio/netty/channel/ChannelPipeline;
MethodParameters:
Name Flags
pipeline
private void handleReadException(io.netty.channel.ChannelPipeline, io.netty.buffer.ByteBuf, java.lang.Throwable, boolean, io.netty.channel.RecvByteBufAllocator$Handle);
descriptor: (Lio/netty/channel/ChannelPipeline;Lio/netty/buffer/ByteBuf;Ljava/lang/Throwable;ZLio/netty/channel/RecvByteBufAllocator$Handle;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
ifnull 6
1: aload 2
invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
ifeq 5
2: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
iconst_0
putfield io.netty.channel.nio.AbstractNioByteChannel.readPending:Z
3: aload 1
aload 2
invokeinterface io.netty.channel.ChannelPipeline.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
pop
4: goto 6
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
6: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.readComplete:()V
7: aload 1
invokeinterface io.netty.channel.ChannelPipeline.fireChannelReadComplete:()Lio/netty/channel/ChannelPipeline;
pop
8: aload 1
aload 3
invokeinterface io.netty.channel.ChannelPipeline.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPipeline;
pop
9: iload 4
ifne 10
aload 3
instanceof java.io.IOException
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.closeOnRead:(Lio/netty/channel/ChannelPipeline;)V
11: StackMap locals:
StackMap stack:
return
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 12 0 this Lio/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe;
0 12 1 pipeline Lio/netty/channel/ChannelPipeline;
0 12 2 byteBuf Lio/netty/buffer/ByteBuf;
0 12 3 cause Ljava/lang/Throwable;
0 12 4 close Z
0 12 5 allocHandle Lio/netty/channel/RecvByteBufAllocator$Handle;
MethodParameters:
Name Flags
pipeline
byteBuf
cause
close
allocHandle
public final void read();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=9, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.config:()Lio/netty/channel/ChannelConfig;
astore 1
start local 1 1: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
aload 1
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.shouldBreakReadReady:(Lio/netty/channel/ChannelConfig;)Z
ifeq 4
2: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.clearReadPending:()V
3: return
4: StackMap locals: io.netty.channel.ChannelConfig
StackMap stack:
aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.pipeline:()Lio/netty/channel/ChannelPipeline;
astore 2
start local 2 5: aload 1
invokeinterface io.netty.channel.ChannelConfig.getAllocator:()Lio/netty/buffer/ByteBufAllocator;
astore 3
start local 3 6: aload 0
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.recvBufAllocHandle:()Lio/netty/channel/RecvByteBufAllocator$Handle;
astore 4
start local 4 7: aload 4
aload 1
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.reset:(Lio/netty/channel/ChannelConfig;)V
8: aconst_null
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: StackMap locals: io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe io.netty.channel.ChannelConfig io.netty.channel.ChannelPipeline io.netty.buffer.ByteBufAllocator io.netty.channel.RecvByteBufAllocator$Handle io.netty.buffer.ByteBuf int
StackMap stack:
aload 4
aload 3
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.allocate:(Lio/netty/buffer/ByteBufAllocator;)Lio/netty/buffer/ByteBuf;
astore 5
11: aload 4
aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
aload 5
invokevirtual io.netty.channel.nio.AbstractNioByteChannel.doReadBytes:(Lio/netty/buffer/ByteBuf;)I
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.lastBytesRead:(I)V
12: aload 4
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.lastBytesRead:()I
ifgt 21
13: aload 5
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
14: aconst_null
astore 5
15: aload 4
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.lastBytesRead:()I
ifge 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 6
18: iload 6
ifeq 26
19: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
iconst_0
putfield io.netty.channel.nio.AbstractNioByteChannel.readPending:Z
20: goto 26
21: StackMap locals:
StackMap stack:
aload 4
iconst_1
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.incMessagesRead:(I)V
22: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
iconst_0
putfield io.netty.channel.nio.AbstractNioByteChannel.readPending:Z
23: aload 2
aload 5
invokeinterface io.netty.channel.ChannelPipeline.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
pop
24: aconst_null
astore 5
25: aload 4
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.continueReading:()Z
ifne 10
26: StackMap locals:
StackMap stack:
aload 4
invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.readComplete:()V
27: aload 2
invokeinterface io.netty.channel.ChannelPipeline.fireChannelReadComplete:()Lio/netty/channel/ChannelPipeline;
pop
28: iload 6
ifeq 39
29: aload 0
aload 2
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.closeOnRead:(Lio/netty/channel/ChannelPipeline;)V
30: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 7
start local 7 32: aload 0
aload 2
aload 5
aload 7
iload 6
aload 4
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException:(Lio/netty/channel/ChannelPipeline;Lio/netty/buffer/ByteBuf;Ljava/lang/Throwable;ZLio/netty/channel/RecvByteBufAllocator$Handle;)V
end local 7 33: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
getfield io.netty.channel.nio.AbstractNioByteChannel.readPending:Z
ifne 41
aload 1
invokeinterface io.netty.channel.ChannelConfig.isAutoRead:()Z
ifne 41
34: aload 0
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.removeReadOp:()V
goto 41
35: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
36: aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
getfield io.netty.channel.nio.AbstractNioByteChannel.readPending:Z
ifne 38
aload 1
invokeinterface io.netty.channel.ChannelConfig.isAutoRead:()Z
ifne 38
37: aload 0
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.removeReadOp:()V
38: StackMap locals: io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe io.netty.channel.ChannelConfig io.netty.channel.ChannelPipeline io.netty.buffer.ByteBufAllocator io.netty.channel.RecvByteBufAllocator$Handle io.netty.buffer.ByteBuf int top java.lang.Throwable
StackMap stack:
aload 8
athrow
39: StackMap locals: io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe io.netty.channel.ChannelConfig io.netty.channel.ChannelPipeline io.netty.buffer.ByteBufAllocator io.netty.channel.RecvByteBufAllocator$Handle io.netty.buffer.ByteBuf int
StackMap stack:
aload 0
getfield io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.this$0:Lio/netty/channel/nio/AbstractNioByteChannel;
getfield io.netty.channel.nio.AbstractNioByteChannel.readPending:Z
ifne 41
aload 1
invokeinterface io.netty.channel.ChannelConfig.isAutoRead:()Z
ifne 41
40: aload 0
invokevirtual io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.removeReadOp:()V
41: 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 42 0 this Lio/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe;
1 42 1 config Lio/netty/channel/ChannelConfig;
5 42 2 pipeline Lio/netty/channel/ChannelPipeline;
6 42 3 allocator Lio/netty/buffer/ByteBufAllocator;
7 42 4 allocHandle Lio/netty/channel/RecvByteBufAllocator$Handle;
9 42 5 byteBuf Lio/netty/buffer/ByteBuf;
10 42 6 close Z
32 33 7 t Ljava/lang/Throwable;
Exception table:
from to target type
10 30 31 Class java.lang.Throwable
10 33 35 any
}
SourceFile: "AbstractNioByteChannel.java"
NestHost: io.netty.channel.nio.AbstractNioByteChannel
InnerClasses:
public abstract Handle = io.netty.channel.RecvByteBufAllocator$Handle of io.netty.channel.RecvByteBufAllocator
protected NioByteUnsafe = io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe of io.netty.channel.nio.AbstractNioByteChannel
protected abstract AbstractNioUnsafe = io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe of io.netty.channel.nio.AbstractNioChannel