public class io.undertow.util.ConnectionUtils
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.util.ConnectionUtils
super_class: java.lang.Object
{
private static final long MAX_DRAIN_TIME;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "io.undertow.max-drain-time"
ldc 10000
invokestatic java.lang.Long.getLong:(Ljava/lang/String;J)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
putstatic io.undertow.util.ConnectionUtils.MAX_DRAIN_TIME:J
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/util/ConnectionUtils;
public static void cleanClose(org.xnio.StreamConnection, java.io.Closeable[]);
descriptor: (Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites:()V
1: aload 0
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
ifne 7
2: aload 0
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
new io.undertow.util.ConnectionUtils$1
dup
aload 0
aload 1
invokespecial io.undertow.util.ConnectionUtils$1.<init>:(Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
3: new io.undertow.util.ConnectionUtils$2
dup
aload 0
aload 1
invokespecial io.undertow.util.ConnectionUtils$2.<init>:(Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
4: invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
5: aload 0
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
6: goto 16
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic io.undertow.util.ConnectionUtils.doDrain:(Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
8: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 2
start local 2 10: aload 2
instanceof java.io.IOException
ifeq 13
11: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 2
checkcast java.io.IOException
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
12: goto 14
13: StackMap locals: java.lang.Throwable
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.io.IOException
dup
aload 2
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
14: StackMap locals:
StackMap stack:
aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
15: aload 1
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
end local 2 16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 connection Lorg/xnio/StreamConnection;
0 17 1 additional [Ljava/io/Closeable;
10 16 2 e Ljava/lang/Throwable;
Exception table:
from to target type
0 8 9 Class java.lang.Throwable
MethodParameters:
Name Flags
connection
additional
private static void doDrain(org.xnio.StreamConnection, java.io.Closeable[]);
descriptor: (Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.isOpen:()Z
ifne 4
1: aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
2: aload 1
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
3: return
4: StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 5: aload 0
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
aload 2
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 6: aload 2
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
7: iload 3
ifne 14
8: aload 0
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.util.ConnectionUtils$3
dup
aload 0
aload 1
invokespecial io.undertow.util.ConnectionUtils$3.<init>:(Lorg/xnio/StreamConnection;[Ljava/io/Closeable;)V
9: getstatic io.undertow.util.ConnectionUtils.MAX_DRAIN_TIME:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
10: invokestatic io.undertow.util.WorkerUtils.executeAfter:(Lorg/xnio/XnioIoThread;Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
astore 4
start local 4 11: aload 0
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
new io.undertow.util.ConnectionUtils$4
dup
aload 2
aload 0
aload 1
aload 4
invokespecial io.undertow.util.ConnectionUtils$4.<init>:(Ljava/nio/ByteBuffer;Lorg/xnio/StreamConnection;[Ljava/io/Closeable;Lorg/xnio/XnioExecutor$Key;)V
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setReadListener:(Lorg/xnio/ChannelListener;)V
12: aload 0
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
end local 4 13: goto 24
14: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
15: aload 1
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
end local 3 16: goto 24
StackMap locals: org.xnio.StreamConnection java.io.Closeable[] java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
17: astore 3
start local 3 18: aload 3
instanceof java.io.IOException
ifeq 21
19: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 3
checkcast java.io.IOException
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
20: goto 22
21: StackMap locals: java.lang.Throwable
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.io.IOException
dup
aload 3
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
22: StackMap locals:
StackMap stack:
aload 0
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
23: aload 1
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
end local 3 24: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 connection Lorg/xnio/StreamConnection;
0 25 1 additional [Ljava/io/Closeable;
5 25 2 b Ljava/nio/ByteBuffer;
6 16 3 res I
11 13 4 key Lorg/xnio/XnioExecutor$Key;
18 24 3 e Ljava/lang/Throwable;
Exception table:
from to target type
5 16 17 Class java.lang.Throwable
MethodParameters:
Name Flags
connection final
additional final
}
SourceFile: "ConnectionUtils.java"
NestMembers:
io.undertow.util.ConnectionUtils$1 io.undertow.util.ConnectionUtils$2 io.undertow.util.ConnectionUtils$3 io.undertow.util.ConnectionUtils$4
InnerClasses:
io.undertow.util.ConnectionUtils$1
io.undertow.util.ConnectionUtils$2
io.undertow.util.ConnectionUtils$3
io.undertow.util.ConnectionUtils$4
public abstract Key = org.xnio.XnioExecutor$Key of org.xnio.XnioExecutor