public abstract class org.eclipse.jetty.io.IdleTimeout
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.eclipse.jetty.io.IdleTimeout
super_class: java.lang.Object
{
private static final org.slf4j.Logger LOG;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.eclipse.jetty.util.thread.Scheduler _scheduler;
descriptor: Lorg/eclipse/jetty/util/thread/Scheduler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicReference<org.eclipse.jetty.util.thread.Scheduler$Task> _timeout;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/eclipse/jetty/util/thread/Scheduler$Task;>;
private volatile long _idleTimeout;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long _idleTimestamp;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/io/IdleTimeout;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.eclipse.jetty.io.IdleTimeout.LOG:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.eclipse.jetty.util.thread.Scheduler);
descriptor: (Lorg/eclipse/jetty/util/thread/Scheduler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield org.eclipse.jetty.io.IdleTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
invokestatic java.lang.System.nanoTime:()J
putfield org.eclipse.jetty.io.IdleTimeout._idleTimestamp:J
3: aload 0
aload 1
putfield org.eclipse.jetty.io.IdleTimeout._scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jetty/io/IdleTimeout;
0 5 1 scheduler Lorg/eclipse/jetty/util/thread/Scheduler;
MethodParameters:
Name Flags
scheduler
public org.eclipse.jetty.util.thread.Scheduler getScheduler();
descriptor: ()Lorg/eclipse/jetty/util/thread/Scheduler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/io/IdleTimeout;
public long getIdleFor();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.lang.System.nanoTime:()J
aload 0
getfield org.eclipse.jetty.io.IdleTimeout._idleTimestamp:J
lsub
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/io/IdleTimeout;
public long getIdleTimeout();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._idleTimeout:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/io/IdleTimeout;
public void setIdleTimeout(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._idleTimeout:J
lstore 3
start local 3 1: aload 0
lload 1
putfield org.eclipse.jetty.io.IdleTimeout._idleTimeout:J
2: lload 3
lconst_0
lcmp
ifle 6
3: lload 3
lload 1
lcmp
ifgt 5
4: return
5: StackMap locals: long
StackMap stack:
aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.deactivate:()V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.isOpen:()Z
ifeq 8
7: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.activate:()V
8: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/eclipse/jetty/io/IdleTimeout;
0 9 1 idleTimeout J
1 9 3 old J
MethodParameters:
Name Flags
idleTimeout
public void notIdle();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.nanoTime:()J
putfield org.eclipse.jetty.io.IdleTimeout._idleTimestamp:J
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/io/IdleTimeout;
private void idleCheck();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout:()J
lstore 1
start local 1 1: lload 1
lconst_0
lcmp
iflt 5
2: aload 0
lload 1
lconst_0
lcmp
ifle 3
lload 1
goto 4
StackMap locals: org.eclipse.jetty.io.IdleTimeout long
StackMap stack: org.eclipse.jetty.io.IdleTimeout
3: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.getIdleTimeout:()J
StackMap locals: org.eclipse.jetty.io.IdleTimeout long
StackMap stack: org.eclipse.jetty.io.IdleTimeout long
4: invokevirtual org.eclipse.jetty.io.IdleTimeout.scheduleIdleTimeout:(J)V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jetty/io/IdleTimeout;
1 6 1 idleLeft J
private void scheduleIdleTimeout(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 3
start local 3 1: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.isOpen:()Z
ifeq 3
lload 1
lconst_0
lcmp
ifle 3
aload 0
getfield org.eclipse.jetty.io.IdleTimeout._scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
ifnull 3
2: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
aload 0
invokedynamic run(Lorg/eclipse/jetty/io/IdleTimeout;)Ljava/lang/Runnable;
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
org/eclipse/jetty/io/IdleTimeout.idleCheck()V (7)
()V
lload 1
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface org.eclipse.jetty.util.thread.Scheduler.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/eclipse/jetty/util/thread/Scheduler$Task;
astore 3
3: StackMap locals: org.eclipse.jetty.util.thread.Scheduler$Task
StackMap stack:
aload 0
getfield org.eclipse.jetty.io.IdleTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jetty.util.thread.Scheduler$Task
astore 5
start local 5 4: aload 5
ifnull 6
5: aload 5
invokeinterface org.eclipse.jetty.util.thread.Scheduler$Task.cancel:()Z
pop
6: StackMap locals: org.eclipse.jetty.io.IdleTimeout long org.eclipse.jetty.util.thread.Scheduler$Task top org.eclipse.jetty.util.thread.Scheduler$Task
StackMap stack:
return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jetty/io/IdleTimeout;
0 7 1 delay J
1 7 3 newTimeout Lorg/eclipse/jetty/util/thread/Scheduler$Task;
4 7 5 oldTimeout Lorg/eclipse/jetty/util/thread/Scheduler$Task;
MethodParameters:
Name Flags
delay
public void onOpen();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.activate:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/io/IdleTimeout;
private void activate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._idleTimeout:J
lconst_0
lcmp
ifle 2
1: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.idleCheck:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jetty/io/IdleTimeout;
public void onClose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.deactivate:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/io/IdleTimeout;
private void deactivate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jetty.util.thread.Scheduler$Task
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokeinterface org.eclipse.jetty.util.thread.Scheduler$Task.cancel:()Z
pop
3: StackMap locals: org.eclipse.jetty.util.thread.Scheduler$Task
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jetty/io/IdleTimeout;
1 4 1 oldTimeout Lorg/eclipse/jetty/util/thread/Scheduler$Task;
protected long checkIdleTimeout();
descriptor: ()J
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=10, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.isOpen:()Z
ifeq 20
1: aload 0
getfield org.eclipse.jetty.io.IdleTimeout._idleTimestamp:J
lstore 1
start local 1 2: getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.lang.System.nanoTime:()J
lload 1
lsub
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lstore 3
start local 3 3: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.getIdleTimeout:()J
lstore 5
start local 5 4: lload 5
lload 3
lsub
lstore 7
start local 7 5: getstatic org.eclipse.jetty.io.IdleTimeout.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 7
6: getstatic org.eclipse.jetty.io.IdleTimeout.LOG:Lorg/slf4j/Logger;
ldc "{} idle timeout check, elapsed: {} ms, remaining: {} ms"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
7: StackMap locals: org.eclipse.jetty.io.IdleTimeout long long long long
StackMap stack:
lload 5
lconst_0
lcmp
ifle 17
8: lload 7
lconst_0
lcmp
ifgt 17
9: getstatic org.eclipse.jetty.io.IdleTimeout.LOG:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 11
10: getstatic org.eclipse.jetty.io.IdleTimeout.LOG:Lorg/slf4j/Logger;
ldc "{} idle timeout expired"
aload 0
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
aload 0
new java.util.concurrent.TimeoutException
dup
new java.lang.StringBuilder
dup
ldc "Idle timeout expired: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 5
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " ms"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
invokevirtual org.eclipse.jetty.io.IdleTimeout.onIdleExpired:(Ljava/util/concurrent/TimeoutException;)V
12: goto 16
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
14: aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.notIdle:()V
15: aload 9
athrow
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jetty.io.IdleTimeout.notIdle:()V
17: StackMap locals:
StackMap stack:
lload 7
lconst_0
lcmp
iflt 18
lload 7
goto 19
StackMap locals:
StackMap stack:
18: lconst_0
StackMap locals:
StackMap stack: long
19: lreturn
end local 7 end local 5 end local 3 end local 1 20: StackMap locals: org.eclipse.jetty.io.IdleTimeout
StackMap stack:
ldc -1
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/eclipse/jetty/io/IdleTimeout;
2 20 1 idleTimestamp J
3 20 3 idleElapsed J
4 20 5 idleTimeout J
5 20 7 idleLeft J
Exception table:
from to target type
11 13 13 any
protected abstract void onIdleExpired(java.util.concurrent.TimeoutException);
descriptor: (Ljava/util/concurrent/TimeoutException;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
timeout
public abstract boolean isOpen();
descriptor: ()Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "IdleTimeout.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Task = org.eclipse.jetty.util.thread.Scheduler$Task of org.eclipse.jetty.util.thread.Scheduler