final class io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck implements io.vertx.core.Handler<java.lang.Long>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck
super_class: java.lang.Object
{
final io.vertx.proton.impl.ProtonTransport this$0;
descriptor: Lio/vertx/proton/impl/ProtonTransport;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(io.vertx.proton.impl.ProtonTransport);
descriptor: (Lio/vertx/proton/impl/ProtonTransport;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/proton/impl/ProtonTransport$IdleTimeoutCheck;
MethodParameters:
Name Flags
this$0 final
public void handle(java.lang.Long);
descriptor: (Ljava/lang/Long;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
getfield io.vertx.proton.impl.ProtonTransport.connection:Lorg/apache/qpid/proton/engine/Connection;
invokeinterface org.apache.qpid.proton.engine.Connection.getLocalState:()Lorg/apache/qpid/proton/engine/EndpointState;
getstatic org.apache.qpid.proton.engine.EndpointState.ACTIVE:Lorg/apache/qpid/proton/engine/EndpointState;
if_acmpne 15
2: getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.lang.System.nanoTime:()J
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lstore 3
start local 3 3: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
getfield io.vertx.proton.impl.ProtonTransport.transport:Lorg/apache/qpid/proton/engine/Transport;
lload 3
invokeinterface org.apache.qpid.proton.engine.Transport.tick:(J)J
lstore 5
start local 5 4: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
invokevirtual io.vertx.proton.impl.ProtonTransport.flush:()V
5: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
getfield io.vertx.proton.impl.ProtonTransport.transport:Lorg/apache/qpid/proton/engine/Transport;
invokeinterface org.apache.qpid.proton.engine.Transport.isClosed:()Z
ifeq 9
6: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/logging/Logger;
ldc "IdleTimeoutCheck closed the transport due to the peer exceeding our requested idle-timeout."
invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
7: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
invokevirtual io.vertx.proton.impl.ProtonTransport.disconnect:()V
8: goto 16
9: StackMap locals: int long long
StackMap stack:
lload 5
lconst_0
lcmp
ifeq 16
10: lload 5
lload 3
lsub
lconst_1
invokestatic java.lang.Math.max:(JJ)J
lstore 7
start local 7 11: iconst_1
istore 2
12: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/logging/Logger;
ldc "IdleTimeoutCheck rescheduling with delay: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;[Ljava/lang/Object;)V
13: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
getfield io.vertx.proton.impl.ProtonTransport.vertx:Lio/vertx/core/Vertx;
lload 7
aload 0
invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
putfield io.vertx.proton.impl.ProtonTransport.idleTimeoutCheckTimerId:Ljava/lang/Long;
end local 7 end local 5 end local 3 14: goto 16
15: StackMap locals:
StackMap stack:
getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/logging/Logger;
ldc "IdleTimeoutCheck skipping check, connection is not active."
invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
iload 2
ifne 19
17: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
aconst_null
putfield io.vertx.proton.impl.ProtonTransport.idleTimeoutCheckTimerId:Ljava/lang/Long;
18: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/logging/Logger;
ldc "IdleTimeoutCheck exiting"
invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;)V
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/vertx/proton/impl/ProtonTransport$IdleTimeoutCheck;
0 20 1 event Ljava/lang/Long;
1 20 2 checkScheduled Z
3 14 3 now J
4 14 5 deadline J
11 14 7 delay J
MethodParameters:
Name Flags
event
public void handle(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.Long
invokevirtual io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.handle:(Ljava/lang/Long;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Lio/vertx/core/Handler<Ljava/lang/Long;>;
SourceFile: "ProtonTransport.java"
NestHost: io.vertx.proton.impl.ProtonTransport
InnerClasses:
private final IdleTimeoutCheck = io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck of io.vertx.proton.impl.ProtonTransport