final class com.mongodb.connection.netty.ReadTimeoutHandler extends io.netty.channel.ChannelInboundHandlerAdapter
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.mongodb.connection.netty.ReadTimeoutHandler
super_class: io.netty.channel.ChannelInboundHandlerAdapter
{
private final long readTimeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.util.concurrent.ScheduledFuture<?> timeout;
descriptor: Ljava/util/concurrent/ScheduledFuture;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/concurrent/ScheduledFuture<*>;
void <init>(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 // com.mongodb.connection.netty.ReadTimeoutHandler this
start local 1 // long readTimeout
0: .line 38
aload 0 /* this */
invokespecial io.netty.channel.ChannelInboundHandlerAdapter.<init>:()V
1: .line 39
ldc "readTimeout must be greater than zero."
lload 1 /* readTimeout */
lconst_0
lcmp
ifle 2
iconst_1
goto 3
StackMap locals: com.mongodb.connection.netty.ReadTimeoutHandler long
StackMap stack: java.lang.String
2: iconst_0
StackMap locals: com.mongodb.connection.netty.ReadTimeoutHandler long
StackMap stack: java.lang.String int
3: invokestatic com.mongodb.assertions.Assertions.isTrueArgument:(Ljava/lang/String;Z)V
4: .line 40
aload 0 /* this */
lload 1 /* readTimeout */
putfield com.mongodb.connection.netty.ReadTimeoutHandler.readTimeout:J
5: .line 41
return
end local 1 // long readTimeout
end local 0 // com.mongodb.connection.netty.ReadTimeoutHandler this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/mongodb/connection/netty/ReadTimeoutHandler;
0 6 1 readTimeout J
MethodParameters:
Name Flags
readTimeout final
void scheduleTimeout(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 // com.mongodb.connection.netty.ReadTimeoutHandler this
start local 1 // io.netty.channel.ChannelHandlerContext ctx
0: .line 44
ldc "Handler called from the eventLoop"
aload 1 /* ctx */
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
1: .line 45
aload 0 /* this */
getfield com.mongodb.connection.netty.ReadTimeoutHandler.timeout:Ljava/util/concurrent/ScheduledFuture;
ifnonnull 3
2: .line 46
aload 0 /* this */
aload 1 /* ctx */
invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
new com.mongodb.connection.netty.ReadTimeoutHandler$ReadTimeoutTask
dup
aload 1 /* ctx */
invokespecial com.mongodb.connection.netty.ReadTimeoutHandler$ReadTimeoutTask.<init>:(Lio/netty/channel/ChannelHandlerContext;)V
aload 0 /* this */
getfield com.mongodb.connection.netty.ReadTimeoutHandler.readTimeout:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface io.netty.util.concurrent.EventExecutor.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/ScheduledFuture;
putfield com.mongodb.connection.netty.ReadTimeoutHandler.timeout:Ljava/util/concurrent/ScheduledFuture;
3: .line 48
StackMap locals:
StackMap stack:
return
end local 1 // io.netty.channel.ChannelHandlerContext ctx
end local 0 // com.mongodb.connection.netty.ReadTimeoutHandler this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/connection/netty/ReadTimeoutHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx final
void removeTimeout(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.mongodb.connection.netty.ReadTimeoutHandler this
start local 1 // io.netty.channel.ChannelHandlerContext ctx
0: .line 51
ldc "Handler called from the eventLoop"
aload 1 /* ctx */
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
1: .line 52
aload 0 /* this */
getfield com.mongodb.connection.netty.ReadTimeoutHandler.timeout:Ljava/util/concurrent/ScheduledFuture;
ifnull 4
2: .line 53
aload 0 /* this */
getfield com.mongodb.connection.netty.ReadTimeoutHandler.timeout:Ljava/util/concurrent/ScheduledFuture;
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
pop
3: .line 54
aload 0 /* this */
aconst_null
putfield com.mongodb.connection.netty.ReadTimeoutHandler.timeout:Ljava/util/concurrent/ScheduledFuture;
4: .line 56
StackMap locals:
StackMap stack:
return
end local 1 // io.netty.channel.ChannelHandlerContext ctx
end local 0 // com.mongodb.connection.netty.ReadTimeoutHandler this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/connection/netty/ReadTimeoutHandler;
0 5 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx final
}
SourceFile: "ReadTimeoutHandler.java"
NestMembers:
com.mongodb.connection.netty.ReadTimeoutHandler$ReadTimeoutTask
InnerClasses:
private final ReadTimeoutTask = com.mongodb.connection.netty.ReadTimeoutHandler$ReadTimeoutTask of com.mongodb.connection.netty.ReadTimeoutHandler