public final class io.undertow.conduits.ReadTimeoutStreamSourceConduit extends org.xnio.conduits.AbstractStreamSourceConduit<org.xnio.conduits.StreamSourceConduit>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.undertow.conduits.ReadTimeoutStreamSourceConduit
super_class: org.xnio.conduits.AbstractStreamSourceConduit
{
private org.xnio.XnioExecutor$Key handle;
descriptor: Lorg/xnio/XnioExecutor$Key;
flags: (0x0002) ACC_PRIVATE
private final org.xnio.StreamConnection connection;
descriptor: Lorg/xnio/StreamConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long expireTime;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final io.undertow.server.OpenListener openListener;
descriptor: Lio/undertow/server/OpenListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int FUZZ_FACTOR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 50
private final java.lang.Runnable timeoutCommand;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.xnio.conduits.StreamSourceConduit, org.xnio.StreamConnection, io.undertow.server.OpenListener);
descriptor: (Lorg/xnio/conduits/StreamSourceConduit;Lorg/xnio/StreamConnection;Lio/undertow/server/OpenListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
1: aload 0
ldc -1
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.expireTime:J
2: aload 0
new io.undertow.conduits.ReadTimeoutStreamSourceConduit$1
dup
aload 0
invokespecial io.undertow.conduits.ReadTimeoutStreamSourceConduit$1.<init>:(Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;)V
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.timeoutCommand:Ljava/lang/Runnable;
3: aload 0
aload 2
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.connection:Lorg/xnio/StreamConnection;
4: aload 0
aload 3
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.openListener:Lio/undertow/server/OpenListener;
5: new org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler
dup
aload 2
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokespecial org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.<init>:(Lorg/xnio/channels/SuspendableReadChannel;)V
astore 4
start local 4 6: aload 1
new io.undertow.conduits.ReadTimeoutStreamSourceConduit$2
dup
aload 0
aload 4
invokespecial io.undertow.conduits.ReadTimeoutStreamSourceConduit$2.<init>:(Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;Lorg/xnio/conduits/ReadReadyHandler;)V
invokeinterface org.xnio.conduits.StreamSourceConduit.setReadReadyHandler:(Lorg/xnio/conduits/ReadReadyHandler;)V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 8 1 delegate Lorg/xnio/conduits/StreamSourceConduit;
0 8 2 connection Lorg/xnio/StreamConnection;
0 8 3 openListener Lio/undertow/server/OpenListener;
6 8 4 handler Lorg/xnio/conduits/ReadReadyHandler;
MethodParameters:
Name Flags
delegate final
connection
openListener
private void handleReadTimeout(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.connection:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.isOpen:()Z
ifne 3
1: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.cleanup:()V
2: return
3: StackMap locals:
StackMap stack:
lload 1
ldc -1
lcmp
ifne 6
4: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.cleanup:()V
5: return
6: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifne 8
aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
ifnull 8
7: return
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.getTimeout:()Ljava/lang/Integer;
astore 3
start local 3 9: aload 3
ifnull 10
aload 3
invokevirtual java.lang.Integer.intValue:()I
ifgt 11
10: StackMap locals: java.lang.Integer
StackMap stack:
return
11: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
start local 4 12: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.expireTime:J
lstore 6
start local 6 13: lload 6
ldc -1
lcmp
ifeq 16
lload 4
lload 6
lcmp
ifle 16
14: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.connection:Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
15: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
16: StackMap locals: long long
StackMap stack:
aload 0
lload 4
aload 3
invokevirtual java.lang.Integer.intValue:()I
i2l
ladd
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.expireTime:J
17: return
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 18 1 ret J
9 18 3 timeout Ljava/lang/Integer;
12 18 4 currentTime J
13 18 6 expireTimeVar J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ret final
public long transferTo(long, long, java.nio.channels.FileChannel);
descriptor: (JJLjava/nio/channels/FileChannel;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 3 start local 5 0: aload 0
lload 1
lload 3
aload 5
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.transferTo:(JJLjava/nio/channels/FileChannel;)J
lstore 6
start local 6 1: aload 0
lload 6
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.handleReadTimeout:(J)V
2: lload 6
lreturn
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 3 1 position J
0 3 3 count J
0 3 5 target Ljava/nio/channels/FileChannel;
1 3 6 ret J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
position final
count final
target final
public long transferTo(long, java.nio.ByteBuffer, org.xnio.channels.StreamSinkChannel);
descriptor: (JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
lload 1
aload 3
aload 4
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.transferTo:(JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
lstore 5
start local 5 1: aload 0
lload 5
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.handleReadTimeout:(J)V
2: lload 5
lreturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 3 1 count J
0 3 3 throughBuffer Ljava/nio/ByteBuffer;
0 3 4 target Lorg/xnio/channels/StreamSinkChannel;
1 3 5 ret J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
count final
throughBuffer final
target final
public long read(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.read:([Ljava/nio/ByteBuffer;II)J
lstore 4
start local 4 1: aload 0
lload 4
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.handleReadTimeout:(J)V
2: lload 4
lreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 3 1 dsts [Ljava/nio/ByteBuffer;
0 3 2 offset I
0 3 3 length I
1 3 4 ret J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dsts final
offset final
length final
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 1: aload 0
iload 2
i2l
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.handleReadTimeout:(J)V
2: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 3 1 dst Ljava/nio/ByteBuffer;
1 3 2 ret I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst final
public void awaitReadable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.getTimeout:()Ljava/lang/Integer;
astore 1
start local 1 1: aload 1
ifnull 4
aload 1
invokevirtual java.lang.Integer.intValue:()I
ifle 4
2: aload 0
aload 1
invokevirtual java.lang.Integer.intValue:()I
bipush 50
iadd
i2l
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
3: goto 5
4: StackMap locals: java.lang.Integer
StackMap stack:
aload 0
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.awaitReadable:()V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
1 6 1 timeout Ljava/lang/Integer;
Exceptions:
throws java.io.IOException
public void awaitReadable(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.getTimeout:()Ljava/lang/Integer;
astore 4
start local 4 1: aload 4
ifnull 5
aload 4
invokevirtual java.lang.Integer.intValue:()I
ifle 5
2: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lstore 5
start local 5 3: aload 0
lload 5
aload 4
invokevirtual java.lang.Integer.intValue:()I
bipush 50
iadd
i2l
invokestatic java.lang.Math.min:(JJ)J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
end local 5 4: goto 6
5: StackMap locals: java.lang.Integer
StackMap stack:
aload 0
lload 1
aload 3
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
0 7 1 time J
0 7 3 timeUnit Ljava/util/concurrent/TimeUnit;
1 7 4 timeout Ljava/lang/Integer;
3 4 5 millis J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time
timeUnit
private java.lang.Integer getTimeout();
descriptor: ()Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 1
start local 1 1: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.connection:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 1
2: goto 4
StackMap locals: io.undertow.conduits.ReadTimeoutStreamSourceConduit java.lang.Integer
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.openListener:Lio/undertow/server/OpenListener;
invokeinterface io.undertow.server.OpenListener.getUndertowOptions:()Lorg/xnio/OptionMap;
getstatic io.undertow.UndertowOptions.IDLE_TIMEOUT:Lorg/xnio/Option;
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 2
start local 2 5: aload 1
ifnull 6
aload 1
invokevirtual java.lang.Integer.intValue:()I
ifgt 9
StackMap locals: java.lang.Integer
StackMap stack:
6: aload 2
ifnull 9
7: aload 2
astore 1
8: goto 11
StackMap locals:
StackMap stack:
9: aload 1
ifnull 11
aload 2
ifnull 11
aload 2
invokevirtual java.lang.Integer.intValue:()I
ifle 11
10: aload 1
invokevirtual java.lang.Integer.intValue:()I
aload 2
invokevirtual java.lang.Integer.intValue:()I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 1
11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
1 12 1 timeout Ljava/lang/Integer;
5 12 2 idleTimeout Ljava/lang/Integer;
Exception table:
from to target type
1 2 3 Class java.io.IOException
public void terminateReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.terminateReads:()V
1: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.cleanup:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
Exceptions:
throws java.io.IOException
private void cleanup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
ifnull 3
1: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
pop
2: aload 0
aconst_null
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.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/conduits/ReadTimeoutStreamSourceConduit;
public void resumeReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.resumeReads:()V
1: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.handleResumeTimeout:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
public void suspendReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.suspendReads:()V
1: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
astore 1
start local 1 2: aload 1
ifnull 5
3: aload 1
invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
pop
4: aload 0
aconst_null
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
5: StackMap locals: org.xnio.XnioExecutor$Key
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
2 6 1 handle Lorg/xnio/XnioExecutor$Key;
public void wakeupReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xnio.conduits.AbstractStreamSourceConduit.wakeupReads:()V
1: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.handleResumeTimeout:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
private void handleResumeTimeout();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.conduits.ReadTimeoutStreamSourceConduit.getTimeout:()Ljava/lang/Integer;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual java.lang.Integer.intValue:()I
ifgt 3
2: StackMap locals: java.lang.Integer
StackMap stack:
return
3: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 2
start local 2 4: aload 0
lload 2
aload 1
invokevirtual java.lang.Integer.intValue:()I
i2l
ladd
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.expireTime:J
5: aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
astore 4
start local 4 6: aload 4
ifnonnull 8
7: aload 0
aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.connection:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
getfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.timeoutCommand:Ljava/lang/Runnable;
aload 1
invokevirtual java.lang.Integer.intValue:()I
i2l
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual org.xnio.XnioIoThread.executeAfter:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
putfield io.undertow.conduits.ReadTimeoutStreamSourceConduit.handle:Lorg/xnio/XnioExecutor$Key;
8: StackMap locals: long org.xnio.XnioExecutor$Key
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/conduits/ReadTimeoutStreamSourceConduit;
1 9 1 timeout Ljava/lang/Integer;
4 9 2 currentTime J
6 9 4 key Lorg/xnio/XnioExecutor$Key;
}
Signature: Lorg/xnio/conduits/AbstractStreamSourceConduit<Lorg/xnio/conduits/StreamSourceConduit;>;
SourceFile: "ReadTimeoutStreamSourceConduit.java"
NestMembers:
io.undertow.conduits.ReadTimeoutStreamSourceConduit$1 io.undertow.conduits.ReadTimeoutStreamSourceConduit$2
InnerClasses:
io.undertow.conduits.ReadTimeoutStreamSourceConduit$1
io.undertow.conduits.ReadTimeoutStreamSourceConduit$2
public abstract Key = org.xnio.XnioExecutor$Key of org.xnio.XnioExecutor
public ChannelListenerHandler = org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler of org.xnio.conduits.ReadReadyHandler