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=5, 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 19
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: goto 8
StackMap locals: io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck java.lang.Long int long long
StackMap stack: java.lang.IllegalStateException
6: pop
7: lconst_0
lstore 5
8: StackMap locals:
StackMap stack:
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 12
9: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/impl/logging/Logger;
ldc "IdleTimeoutCheck closed the transport due to the peer exceeding our requested idle-timeout."
invokeinterface io.vertx.core.impl.logging.Logger.info:(Ljava/lang/Object;)V
10: aload 0
getfield io.vertx.proton.impl.ProtonTransport$IdleTimeoutCheck.this$0:Lio/vertx/proton/impl/ProtonTransport;
invokevirtual io.vertx.proton.impl.ProtonTransport.disconnect:()V
11: goto 20
12: StackMap locals:
StackMap stack:
lload 5
lconst_0
lcmp
ifeq 20
13: lload 5
lload 3
lsub
lconst_1
invokestatic java.lang.Math.max:(JJ)J
lstore 7
start local 7 14: iconst_1
istore 2
15: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/impl/logging/Logger;
invokeinterface io.vertx.core.impl.logging.Logger.isTraceEnabled:()Z
ifeq 17
16: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/impl/logging/Logger;
new java.lang.StringBuilder
dup
ldc "IdleTimeoutCheck rescheduling with delay: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 7
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.vertx.core.impl.logging.Logger.trace:(Ljava/lang/Object;)V
17: StackMap locals: long
StackMap stack:
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 18: goto 20
19: StackMap locals:
StackMap stack:
getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/impl/logging/Logger;
ldc "IdleTimeoutCheck skipping check, connection is not active."
invokeinterface io.vertx.core.impl.logging.Logger.trace:(Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
iload 2
ifne 23
21: 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;
22: getstatic io.vertx.proton.impl.ProtonTransport.LOG:Lio/vertx/core/impl/logging/Logger;
ldc "IdleTimeoutCheck exiting"
invokeinterface io.vertx.core.impl.logging.Logger.trace:(Ljava/lang/Object;)V
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/vertx/proton/impl/ProtonTransport$IdleTimeoutCheck;
0 24 1 event Ljava/lang/Long;
1 24 2 checkScheduled Z
3 18 3 now J
4 18 5 deadline J
14 18 7 delay J
Exception table:
from to target type
4 5 6 Class java.lang.IllegalStateException
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