public final class io.undertow.server.protocol.ParseTimeoutUpdater implements java.lang.Runnable, io.undertow.server.ServerConnection$CloseListener, java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.undertow.server.protocol.ParseTimeoutUpdater
super_class: java.lang.Object
{
private final org.xnio.channels.ConnectedChannel connection;
descriptor: Lorg/xnio/channels/ConnectedChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long requestParseTimeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long requestIdleTimeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile org.xnio.XnioExecutor$Key handle;
descriptor: Lorg/xnio/XnioExecutor$Key;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long expireTime;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean parsing;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final int FUZZ_FACTOR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 50
private final java.lang.Runnable closeTask;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.xnio.channels.ConnectedChannel, long, long);
descriptor: (Lorg/xnio/channels/ConnectedChannel;JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
aload 1
lload 2
lload 4
new io.undertow.server.protocol.ParseTimeoutUpdater$1
dup
aload 1
invokespecial io.undertow.server.protocol.ParseTimeoutUpdater$1.<init>:(Lorg/xnio/channels/ConnectedChannel;)V
invokespecial io.undertow.server.protocol.ParseTimeoutUpdater.<init>:(Lorg/xnio/channels/ConnectedChannel;JJLjava/lang/Runnable;)V
1: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
0 2 1 channel Lorg/xnio/channels/ConnectedChannel;
0 2 2 requestParseTimeout J
0 2 4 requestIdleTimeout J
MethodParameters:
Name Flags
channel
requestParseTimeout
requestIdleTimeout
public void <init>(org.xnio.channels.ConnectedChannel, long, long, java.lang.Runnable);
descriptor: (Lorg/xnio/channels/ConnectedChannel;JJLjava/lang/Runnable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc -1
putfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
2: aload 0
iconst_0
putfield io.undertow.server.protocol.ParseTimeoutUpdater.parsing:Z
3: aload 0
aload 1
putfield io.undertow.server.protocol.ParseTimeoutUpdater.connection:Lorg/xnio/channels/ConnectedChannel;
4: aload 0
lload 2
putfield io.undertow.server.protocol.ParseTimeoutUpdater.requestParseTimeout:J
5: aload 0
lload 4
putfield io.undertow.server.protocol.ParseTimeoutUpdater.requestIdleTimeout:J
6: aload 0
aload 6
putfield io.undertow.server.protocol.ParseTimeoutUpdater.closeTask:Ljava/lang/Runnable;
7: return
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
0 8 1 channel Lorg/xnio/channels/ConnectedChannel;
0 8 2 requestParseTimeout J
0 8 4 requestIdleTimeout J
0 8 6 closeTask Ljava/lang/Runnable;
MethodParameters:
Name Flags
channel
requestParseTimeout
requestIdleTimeout
closeTask
public void connectionIdle();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield io.undertow.server.protocol.ParseTimeoutUpdater.parsing:Z
1: aload 0
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.requestIdleTimeout:J
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.handleSchedule:(J)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
private void handleSchedule(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: lload 1
ldc -1
lcmp
ifne 3
1: aload 0
ldc -1
putfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
2: return
3: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lload 1
ladd
lstore 3
start local 3 4: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
lstore 5
start local 5 5: aload 0
lload 3
putfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
6: lload 3
lload 5
lcmp
ifge 10
7: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
ifnull 10
8: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
pop
9: aload 0
aconst_null
putfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
10: StackMap locals: long long
StackMap stack:
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
ifnonnull 15
11: aload 0
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.connection:Lorg/xnio/channels/ConnectedChannel;
invokeinterface org.xnio.channels.ConnectedChannel.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
lload 1
ldc 50
ladd
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic io.undertow.util.WorkerUtils.executeAfter:(Lorg/xnio/XnioIoThread;Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
putfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
12: goto 15
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
13: astore 7
start local 7 14: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Failed to schedule parse timeout, server is probably shutting down"
aload 7
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 15: StackMap locals:
StackMap stack:
return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
0 16 1 timeout J
4 16 3 newExpireTime J
5 16 5 oldExpireTime J
14 15 7 e Ljava/util/concurrent/RejectedExecutionException;
Exception table:
from to target type
11 12 13 Class java.util.concurrent.RejectedExecutionException
MethodParameters:
Name Flags
timeout
public void failedParse();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.parsing:Z
ifne 3
1: aload 0
iconst_1
putfield io.undertow.server.protocol.ParseTimeoutUpdater.parsing:Z
2: aload 0
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.requestParseTimeout:J
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.handleSchedule:(J)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
public void requestStarted();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc -1
putfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
1: aload 0
iconst_0
putfield io.undertow.server.protocol.ParseTimeoutUpdater.parsing:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.connection:Lorg/xnio/channels/ConnectedChannel;
invokeinterface org.xnio.channels.ConnectedChannel.isOpen:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
3: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
lconst_0
lcmp
ifle 13
4: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 5: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
lload 1
lcmp
ifle 8
6: aload 0
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.connection:Lorg/xnio/channels/ConnectedChannel;
invokeinterface org.xnio.channels.ConnectedChannel.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.expireTime:J
lload 1
lsub
ldc 50
ladd
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic io.undertow.util.WorkerUtils.executeAfter:(Lorg/xnio/XnioIoThread;Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
putfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
7: goto 13
8: StackMap locals: long
StackMap stack:
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.parsing:Z
ifeq 11
9: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.connection:Lorg/xnio/channels/ConnectedChannel;
invokeinterface org.xnio.channels.ConnectedChannel.getPeerAddress:()Ljava/net/SocketAddress;
invokeinterface io.undertow.UndertowLogger.parseRequestTimedOut:(Ljava/net/SocketAddress;)V
10: goto 12
11: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Timing out idle connection from %s"
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.connection:Lorg/xnio/channels/ConnectedChannel;
invokeinterface org.xnio.channels.ConnectedChannel.getPeerAddress:()Ljava/net/SocketAddress;
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.closeTask:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
end local 1 13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
5 13 1 now J
public void closed(io.undertow.server.ServerConnection);
descriptor: (Lio/undertow/server/ServerConnection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.close:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
0 2 1 connection Lio/undertow/server/ServerConnection;
MethodParameters:
Name Flags
connection
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
ifnull 3
1: aload 0
getfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
pop
2: aload 0
aconst_null
putfield io.undertow.server.protocol.ParseTimeoutUpdater.handle:Lorg/xnio/XnioExecutor$Key;
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/ParseTimeoutUpdater;
}
SourceFile: "ParseTimeoutUpdater.java"
NestMembers:
io.undertow.server.protocol.ParseTimeoutUpdater$1
InnerClasses:
public abstract CloseListener = io.undertow.server.ServerConnection$CloseListener of io.undertow.server.ServerConnection
io.undertow.server.protocol.ParseTimeoutUpdater$1
public abstract Key = org.xnio.XnioExecutor$Key of org.xnio.XnioExecutor