public abstract class io.undertow.server.protocol.framed.AbstractFramedChannel<C extends io.undertow.server.protocol.framed.AbstractFramedChannel<C, R, S>, R extends io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<C, R, S>, S extends io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel<C, R, S>> implements org.xnio.channels.ConnectedChannel
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: io.undertow.server.protocol.framed.AbstractFramedChannel
super_class: java.lang.Object
{
private final int maxQueuedBuffers;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.StreamConnection channel;
descriptor: Lorg/xnio/StreamConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.conduits.IdleTimeoutConduit idleTimeoutConduit;
descriptor: Lio/undertow/conduits/IdleTimeoutConduit;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.ChannelListener$SimpleSetter<C> closeSetter;
descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelListener$SimpleSetter<TC;>;
private final org.xnio.ChannelListener$SimpleSetter<C> receiveSetter;
descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelListener$SimpleSetter<TC;>;
private final io.undertow.connector.ByteBufferPool bufferPool;
descriptor: Lio/undertow/connector/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.server.protocol.framed.FramePriority<C, R, S> framePriority;
descriptor: Lio/undertow/server/protocol/framed/FramePriority;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;
private final java.util.List<S> pendingFrames;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<TS;>;
private final java.util.Deque<S> heldFrames;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<TS;>;
private final java.util.Deque<S> newFrames;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<TS;>;
private volatile long frameDataRemaining;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile R receiver;
descriptor: Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: TR;
private volatile boolean receivesSuspended;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int readsBroken;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int writesBroken;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedChannel> readsBrokenUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedChannel> writesBrokenUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;
private volatile io.undertow.util.ReferenceCountedPooled readData;
descriptor: Lio/undertow/util/ReferenceCountedPooled;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.List<org.xnio.ChannelListener<C>> closeTasks;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/xnio/ChannelListener<TC;>;>;
private volatile boolean flushingSenders;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int outstandingBuffers;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedChannel> outstandingBuffersUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;
private final java.util.concurrent.LinkedBlockingDeque<java.lang.Runnable> taskRunQueue;
descriptor: Ljava/util/concurrent/LinkedBlockingDeque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/LinkedBlockingDeque<Ljava/lang/Runnable;>;
private final java.lang.Runnable taskRunQueueRunnable;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.OptionMap settings;
descriptor: Lorg/xnio/OptionMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean requireExplicitFlush;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean readChannelDone;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final io.undertow.util.ReferenceCountedPooled$FreeNotifier freeNotifier;
descriptor: Lio/undertow/util/ReferenceCountedPooled$FreeNotifier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final org.xnio.ChannelListener<io.undertow.server.protocol.framed.AbstractFramedChannel> DRAIN_LISTENER;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/xnio/ChannelListener<Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.$assertionsDisabled:Z
3: ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
ldc "readsBroken"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.readsBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
4: ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
ldc "writesBroken"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.writesBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
5: ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
ldc "outstandingBuffers"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
6: new io.undertow.server.protocol.framed.AbstractFramedChannel$3
dup
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$3.<init>:()V
putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.DRAIN_LISTENER:Lorg/xnio/ChannelListener;
7: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.xnio.StreamConnection, io.undertow.connector.ByteBufferPool, io.undertow.server.protocol.framed.FramePriority<C, R, S>, io.undertow.connector.PooledByteBuffer, org.xnio.OptionMap);
descriptor: (Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/protocol/framed/FramePriority;Lio/undertow/connector/PooledByteBuffer;Lorg/xnio/OptionMap;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
2: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
3: aload 0
new java.util.concurrent.LinkedBlockingDeque
dup
invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
4: aload 0
iconst_1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
5: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readsBroken:I
6: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.writesBroken:I
7: aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
8: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeTasks:Ljava/util/List;
9: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
10: aload 0
new java.util.concurrent.LinkedBlockingDeque
dup
invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueue:Ljava/util/concurrent/LinkedBlockingDeque;
11: aload 0
new io.undertow.server.protocol.framed.AbstractFramedChannel$1
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$1.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueueRunnable:Ljava/lang/Runnable;
12: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
13: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
14: aload 0
new io.undertow.server.protocol.framed.AbstractFramedChannel$2
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$2.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.freeNotifier:Lio/undertow/util/ReferenceCountedPooled$FreeNotifier;
15: aload 0
aload 3
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
16: aload 0
aload 5
getstatic io.undertow.UndertowOptions.MAX_QUEUED_READ_BUFFERS:Lorg/xnio/Option;
bipush 10
invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
17: aload 0
aload 5
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.settings:Lorg/xnio/OptionMap;
18: aload 4
ifnull 23
19: aload 4
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 22
20: aload 0
new io.undertow.util.ReferenceCountedPooled
dup
aload 4
iconst_1
invokespecial io.undertow.util.ReferenceCountedPooled.<init>:(Lio/undertow/connector/PooledByteBuffer;I)V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
21: goto 23
22: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel org.xnio.StreamConnection io.undertow.connector.ByteBufferPool io.undertow.server.protocol.framed.FramePriority io.undertow.connector.PooledByteBuffer org.xnio.OptionMap
StackMap stack:
aload 4
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
23: StackMap locals:
StackMap stack:
aload 2
ifnonnull 25
24: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "bufferPool"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
25: StackMap locals:
StackMap stack:
aload 1
ifnonnull 27
26: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "connectedStreamChannel"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
27: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.createIdleTimeoutChannel:(Lorg/xnio/StreamConnection;)Lio/undertow/conduits/IdleTimeoutConduit;
astore 6
start local 6 28: aload 1
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
aload 6
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
29: aload 1
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
aload 6
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
30: aload 0
aload 6
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.idleTimeoutConduit:Lio/undertow/conduits/IdleTimeoutConduit;
31: aload 0
aload 1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
32: aload 0
aload 2
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.bufferPool:Lio/undertow/connector/ByteBufferPool;
33: aload 0
new org.xnio.ChannelListener$SimpleSetter
dup
invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
34: aload 0
new org.xnio.ChannelListener$SimpleSetter
dup
invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiveSetter:Lorg/xnio/ChannelListener$SimpleSetter;
35: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
aconst_null
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
36: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
37: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
38: aload 1
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
39: new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
astore 7
start local 7 40: aload 1
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
aload 7
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
41: aload 1
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
aload 7
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
42: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 43 1 connectedStreamChannel Lorg/xnio/StreamConnection;
0 43 2 bufferPool Lio/undertow/connector/ByteBufferPool;
0 43 3 framePriority Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;
0 43 4 readData Lio/undertow/connector/PooledByteBuffer;
0 43 5 settings Lorg/xnio/OptionMap;
28 43 6 idle Lio/undertow/conduits/IdleTimeoutConduit;
40 43 7 closeListener Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>.FrameCloseListener;
Signature: (Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;Lio/undertow/connector/PooledByteBuffer;Lorg/xnio/OptionMap;)V
MethodParameters:
Name Flags
connectedStreamChannel final
bufferPool
framePriority
readData final
settings
protected io.undertow.conduits.IdleTimeoutConduit createIdleTimeoutChannel(org.xnio.StreamConnection);
descriptor: (Lorg/xnio/StreamConnection;)Lio/undertow/conduits/IdleTimeoutConduit;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new io.undertow.conduits.IdleTimeoutConduit
dup
aload 1
invokespecial io.undertow.conduits.IdleTimeoutConduit.<init>:(Lorg/xnio/StreamConnection;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 connectedStreamChannel Lorg/xnio/StreamConnection;
MethodParameters:
Name Flags
connectedStreamChannel
void runInIoThread(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueue:Ljava/util/concurrent/LinkedBlockingDeque;
aload 1
invokevirtual java.util.concurrent.LinkedBlockingDeque.add:(Ljava/lang/Object;)Z
pop
1: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueueRunnable:Ljava/lang/Runnable;
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
2: goto 5
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
3: pop
4: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueueRunnable:Ljava/lang/Runnable;
invokestatic io.undertow.server.protocol.framed.ShutdownFallbackExecutor.execute:(Ljava/lang/Runnable;)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/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 6 1 task Ljava/lang/Runnable;
Exception table:
from to target type
1 2 3 Class java.util.concurrent.RejectedExecutionException
MethodParameters:
Name Flags
task
public io.undertow.connector.ByteBufferPool getBufferPool();
descriptor: ()Lio/undertow/connector/ByteBufferPool;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.bufferPool:Lio/undertow/connector/ByteBufferPool;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public java.net.SocketAddress getLocalAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getLocalAddress:()Ljava/net/SocketAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public <A extends java.net.SocketAddress> A getLocalAddress(java.lang.Class<A>);
descriptor: (Ljava/lang/Class;)Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
aload 1
invokevirtual org.xnio.StreamConnection.getLocalAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 type Ljava/lang/Class<TA;>;
Signature: <A:Ljava/net/SocketAddress;>(Ljava/lang/Class<TA;>;)TA;
MethodParameters:
Name Flags
type
public org.xnio.XnioWorker getWorker();
descriptor: ()Lorg/xnio/XnioWorker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getWorker:()Lorg/xnio/XnioWorker;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public org.xnio.XnioIoThread getIoThread();
descriptor: ()Lorg/xnio/XnioIoThread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public boolean supportsOption(org.xnio.Option<?>);
descriptor: (Lorg/xnio/Option;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
aload 1
invokevirtual org.xnio.StreamConnection.supportsOption:(Lorg/xnio/Option;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 option Lorg/xnio/Option<*>;
Signature: (Lorg/xnio/Option<*>;)Z
MethodParameters:
Name Flags
option
public <T> T getOption(org.xnio.Option<T>);
descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
aload 1
invokevirtual org.xnio.StreamConnection.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 option Lorg/xnio/Option<TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
MethodParameters:
Name Flags
option
public <T> T setOption(org.xnio.Option<T>, );
descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
aload 1
aload 2
invokevirtual org.xnio.StreamConnection.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 option Lorg/xnio/Option<TT;>;
0 1 2 value TT;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
MethodParameters:
Name Flags
option
value
public boolean isOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.isOpen:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public java.net.SocketAddress getPeerAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public <A extends java.net.SocketAddress> A getPeerAddress(java.lang.Class<A>);
descriptor: (Ljava/lang/Class;)Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
aload 1
invokevirtual org.xnio.StreamConnection.getPeerAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 type Ljava/lang/Class<TA;>;
Signature: <A:Ljava/net/SocketAddress;>(Ljava/lang/Class<TA;>;)TA;
MethodParameters:
Name Flags
type
public java.net.InetSocketAddress getSourceAddress();
descriptor: ()Ljava/net/InetSocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/net/InetSocketAddress;
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getPeerAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public java.net.InetSocketAddress getDestinationAddress();
descriptor: ()Ljava/net/InetSocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/net/InetSocketAddress;
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getLocalAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public synchronized R receive();
descriptor: ()Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=12, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
ifeq 7
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
ifnonnull 7
1: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 4
2: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
3: aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
5: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.shutdownReads:()V
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
astore 1
start local 1 8: aload 1
ifnonnull 14
9: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.allocateReferenceCountedBuffer:()Lio/undertow/util/ReferenceCountedPooled;
astore 1
10: aload 1
ifnonnull 12
11: aconst_null
areturn
12: StackMap locals: io.undertow.util.ReferenceCountedPooled
StackMap stack:
iconst_0
istore 2
start local 2 13: goto 23
end local 2 StackMap locals:
StackMap stack:
14: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.isFreed:()Z
ifeq 22
15: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.tryUnfree:()Z
ifne 19
16: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.allocateReferenceCountedBuffer:()Lio/undertow/util/ReferenceCountedPooled;
astore 1
17: aload 1
ifnonnull 20
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
20: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 21: goto 23
end local 2 22: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
istore 2
start local 2 23: StackMap locals: int
StackMap stack:
iconst_0
istore 3
start local 3 24: iconst_0
istore 4
start local 4 25: iload 2
ifne 50
26: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
27: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
istore 4
28: iload 4
ifne 36
29: iconst_1
istore 3
30: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 35
31: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 32
iload 3
ifeq 35
32: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 33
iload 3
ifeq 34
33: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
34: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
35: StackMap locals:
StackMap stack:
aconst_null
areturn
36: StackMap locals:
StackMap stack:
iload 4
iconst_m1
if_icmpne 46
37: iconst_1
istore 3
38: aload 0
iconst_1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
39: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.lastDataRead:()V
40: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 45
41: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 42
iload 3
ifeq 45
42: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 43
iload 3
ifeq 44
43: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
44: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
45: StackMap locals:
StackMap stack:
aconst_null
areturn
46: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isLastFrameReceived:()Z
ifeq 49
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
lconst_0
lcmp
ifne 49
47: iconst_1
istore 3
48: aload 0
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markReadsBroken:(Ljava/lang/Throwable;)V
49: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
50: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
lconst_0
lcmp
ifle 85
51: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lcmp
iflt 69
52: aload 0
dup
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lsub
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
53: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
ifnull 59
54: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 5
start local 5 55: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
56: aload 1
aload 5
invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
astore 6
start local 6 57: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
aconst_null
aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.dataReady:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)V
end local 6 end local 5 58: goto 61
59: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
60: aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
61: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
lconst_0
lcmp
ifne 63
62: aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
63: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 68
64: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 65
iload 3
ifeq 68
65: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 66
iload 3
ifeq 67
66: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
67: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
68: StackMap locals:
StackMap stack:
aconst_null
areturn
69: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 5
start local 5 70: aload 5
aload 5
invokevirtual java.nio.ByteBuffer.position:()I
i2l
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
ladd
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
71: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
i2l
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
ladd
l2i
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
72: aload 0
lconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
73: aload 1
aload 5
invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
astore 6
start local 6 74: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
ifnull 77
75: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
aconst_null
aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.dataReady:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)V
76: goto 78
77: StackMap locals: java.nio.ByteBuffer io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 6
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
78: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
end local 6 end local 5 79: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 84
80: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 81
iload 3
ifeq 84
81: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 82
iload 3
ifeq 83
82: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
83: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
84: StackMap locals:
StackMap stack:
aconst_null
areturn
85: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.parseFrame:(Ljava/nio/ByteBuffer;)Lio/undertow/server/protocol/framed/FrameHeaderData;
astore 5
start local 5 86: aload 5
ifnull 127
87: aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lcmp
iflt 92
88: aload 0
aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lsub
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
89: aload 1
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
astore 6
start local 6 90: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
91: goto 96
end local 6 92: StackMap locals: io.undertow.server.protocol.framed.FrameHeaderData
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 7
start local 7 93: aload 7
aload 7
invokevirtual java.nio.ByteBuffer.position:()I
i2l
aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
ladd
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
94: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
i2l
aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
ladd
l2i
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
95: aload 1
aload 7
invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
astore 6
end local 7 start local 6 96: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getExistingChannel:()Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
astore 7
start local 7 97: aload 7
ifnull 109
98: aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
aload 6
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lcmp
ifle 100
99: aload 0
aload 7
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
100: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
StackMap stack:
aload 7
aload 5
aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.dataReady:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)V
101: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isLastFrameReceived:()Z
ifeq 103
102: aload 0
aload 7
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleLastFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
103: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 108
104: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 105
iload 3
ifeq 108
105: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 106
iload 3
ifeq 107
106: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
107: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
108: StackMap locals:
StackMap stack:
aconst_null
areturn
109: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
aload 6
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lcmp
ifle 110
iconst_1
goto 111
StackMap locals:
StackMap stack:
110: iconst_0
StackMap locals:
StackMap stack: int
111: istore 8
start local 8 112: aload 0
aload 5
aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.createChannel:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
astore 9
start local 9 113: aload 9
ifnull 119
114: iload 8
ifeq 116
115: aload 0
aload 9
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
116: StackMap locals: int io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isLastFrameReceived:()Z
ifeq 120
117: aload 0
aload 9
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleLastFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
118: goto 120
119: StackMap locals:
StackMap stack:
aload 6
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
120: StackMap locals:
StackMap stack:
aload 9
astore 11
121: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 126
122: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 123
iload 3
ifeq 126
123: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel int io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 124
iload 3
ifeq 125
124: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
125: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
126: StackMap locals:
StackMap stack:
aload 11
areturn
end local 9 end local 8 end local 7 end local 6 127: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int io.undertow.server.protocol.framed.FrameHeaderData
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 132
128: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 129
iload 3
ifeq 132
129: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 130
iload 3
ifeq 131
130: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
131: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
132: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 5 133: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int
StackMap stack: java.lang.Throwable
astore 5
start local 5 134: aload 0
aload 5
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markReadsBroken:(Ljava/lang/Throwable;)V
135: iconst_1
istore 3
136: aload 5
athrow
end local 5 137: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
138: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 143
139: aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 140
iload 3
ifeq 143
140: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int top top top top top java.lang.Throwable
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iconst_2
imul
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmpgt 141
iload 3
ifeq 142
141: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
142: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
143: StackMap locals:
StackMap stack:
aload 10
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 144 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
8 144 1 pooled Lio/undertow/util/ReferenceCountedPooled;
13 14 2 hasData Z
21 22 2 hasData Z
23 144 2 hasData Z
24 144 3 forceFree Z
25 144 4 read I
55 58 5 buf Ljava/nio/ByteBuffer;
57 58 6 frameData Lio/undertow/connector/PooledByteBuffer;
70 79 5 buf Ljava/nio/ByteBuffer;
74 79 6 frameData Lio/undertow/connector/PooledByteBuffer;
86 133 5 data Lio/undertow/server/protocol/framed/FrameHeaderData;
90 92 6 frameData Lio/undertow/connector/PooledByteBuffer;
96 127 6 frameData Lio/undertow/connector/PooledByteBuffer;
93 96 7 buf Ljava/nio/ByteBuffer;
97 127 7 existing Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<***>;
112 127 8 moreData Z
113 127 9 newChannel TR;
134 137 5 e Ljava/lang/Throwable;
Exception table:
from to target type
25 30 133 Class java.io.IOException
36 40 133 Class java.io.IOException
46 63 133 Class java.io.IOException
69 79 133 Class java.io.IOException
85 103 133 Class java.io.IOException
109 121 133 Class java.io.IOException
25 30 133 Class java.lang.RuntimeException
36 40 133 Class java.lang.RuntimeException
46 63 133 Class java.lang.RuntimeException
69 79 133 Class java.lang.RuntimeException
85 103 133 Class java.lang.RuntimeException
109 121 133 Class java.lang.RuntimeException
25 30 133 Class java.lang.Error
36 40 133 Class java.lang.Error
46 63 133 Class java.lang.Error
69 79 133 Class java.lang.Error
85 103 133 Class java.lang.Error
109 121 133 Class java.lang.Error
25 30 137 any
36 40 137 any
46 63 137 any
69 79 137 any
85 103 137 any
109 121 137 any
133 137 137 any
Exceptions:
throws java.io.IOException
Signature: ()TR;
private void handleLastFrame(io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel);
descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new java.util.HashSet
dup
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getReceivers:()Ljava/util/Collection;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 1: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel java.util.Set top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
astore 3
start local 3 3: aload 3
aload 1
if_acmpeq 5
4: aload 3
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.markStreamBroken:()V
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 7 1 newChannel Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
1 7 2 receivers Ljava/util/Set<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;>;
3 5 3 r Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
MethodParameters:
Name Flags
newChannel
private io.undertow.util.ReferenceCountedPooled allocateReferenceCountedBuffer();
descriptor: ()Lio/undertow/util/ReferenceCountedPooled;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
ifle 16
1: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
istore 1
start local 1 2: iload 1
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
if_icmpne 15
3: aload 0
dup
astore 2
monitorenter
4: getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
istore 1
5: iload 1
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
if_icmpne 11
6: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
invokeinterface io.undertow.UndertowLogger.isTraceEnabled:()Z
ifeq 8
7: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Suspending reads on %s due to too many outstanding buffers"
aload 0
invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
8: StackMap locals: int io.undertow.server.protocol.framed.AbstractFramedChannel
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
9: aload 2
monitorexit
10: aconst_null
areturn
11: StackMap locals:
StackMap stack:
aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
iconst_1
iadd
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 1
end local 1 16: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.bufferPool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 1
start local 1 17: aload 0
18: new io.undertow.util.ReferenceCountedPooled
dup
aload 1
iconst_1
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
ifle 19
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.freeNotifier:Lio/undertow/util/ReferenceCountedPooled$FreeNotifier;
goto 20
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.connector.PooledByteBuffer
StackMap stack: io.undertow.server.protocol.framed.AbstractFramedChannel new 18 new 18 io.undertow.connector.PooledByteBuffer int
19: aconst_null
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.connector.PooledByteBuffer
StackMap stack: io.undertow.server.protocol.framed.AbstractFramedChannel new 18 new 18 io.undertow.connector.PooledByteBuffer int io.undertow.util.ReferenceCountedPooled$FreeNotifier
20: invokespecial io.undertow.util.ReferenceCountedPooled.<init>:(Lio/undertow/connector/PooledByteBuffer;ILio/undertow/util/ReferenceCountedPooled$FreeNotifier;)V
dup_x1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
2 16 1 expect I
17 21 1 buf Lio/undertow/connector/PooledByteBuffer;
Exception table:
from to target type
4 10 13 any
11 12 13 any
13 14 13 any
protected void lastDataRead();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
protected abstract R createChannel(io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
Signature: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)TR;
MethodParameters:
Name Flags
frameHeaderData
frameData
protected abstract io.undertow.server.protocol.framed.FrameHeaderData (java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lio/undertow/server/protocol/framed/FrameHeaderData;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
protected synchronized void recalculateHeldFrames();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 3
1: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
aconst_null
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokeinterface io.undertow.server.protocol.framed.FramePriority.frameAdded:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;Ljava/util/List;Ljava/util/Deque;)V
2: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Exceptions:
throws java.io.IOException
protected synchronized void flushSenders();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=4, locals=15, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
ifeq 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.recursiveCallToFlushingSenders:()Ljava/lang/RuntimeException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
3: iconst_0
istore 1
start local 1 4: goto 12
5: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 2
start local 2 6: aload 2
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.preWrite:()V
7: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
aload 2
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface io.undertow.server.protocol.framed.FramePriority.insertFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;Ljava/util/List;)Z
ifeq 11
8: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 12
9: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
aload 2
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokeinterface io.undertow.server.protocol.framed.FramePriority.frameAdded:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;Ljava/util/List;Ljava/util/Deque;)V
10: goto 12
11: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
aload 2
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
end local 2 12: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 5
13: iconst_0
istore 2
start local 2 14: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
astore 3
start local 3 15: goto 21
16: StackMap locals: int java.util.ListIterator
StackMap stack:
aload 3
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 4
start local 4 17: aload 4
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isReadyForFlush:()Z
ifeq 22
18: iinc 1 1
19: aload 4
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isLastFrame:()Z
ifeq 21
20: iconst_1
istore 2
end local 4 21: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.ListIterator.hasNext:()Z
ifne 16
22: StackMap locals:
StackMap stack:
iload 1
ifne 33
23: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
ifeq 29
24: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
25: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 4
start local 4 27: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
28: aload 0
aload 4
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markWritesBroken:(Ljava/lang/Throwable;)V
end local 4 29: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
30: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 32
31: aload 0
new io.undertow.server.protocol.framed.AbstractFramedChannel$4
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$4.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
32: StackMap locals:
StackMap stack:
return
33: StackMap locals:
StackMap stack:
iload 1
iconst_3
imul
anewarray java.nio.ByteBuffer
astore 4
start local 4 34: iconst_0
istore 5
start local 5 35: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
astore 3
36: goto 52
37: StackMap locals: java.nio.ByteBuffer[] int
StackMap stack:
aload 3
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 6
start local 6 38: aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
astore 7
start local 7 39: aload 7
invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
astore 8
start local 8 40: aload 7
invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getTrailer:()Ljava/nio/ByteBuffer;
astore 9
start local 9 41: aload 4
iload 5
iconst_3
imul
aload 8
ifnull 43
42: aload 8
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
goto 44
43: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack: java.nio.ByteBuffer[] int
getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
44: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack: java.nio.ByteBuffer[] int java.nio.ByteBuffer
aastore
45: aload 4
iload 5
iconst_3
imul
iconst_1
iadd
aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
ifnonnull 46
getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
goto 47
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack: java.nio.ByteBuffer[] int
46: aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack: java.nio.ByteBuffer[] int java.nio.ByteBuffer
47: aastore
48: aload 4
iload 5
iconst_3
imul
iconst_2
iadd
aload 9
ifnull 49
aload 9
goto 50
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack: java.nio.ByteBuffer[] int
49: getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack: java.nio.ByteBuffer[] int java.nio.ByteBuffer
50: aastore
51: iinc 5 1
end local 9 end local 8 end local 7 end local 6 52: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int
StackMap stack:
iload 5
iload 1
if_icmplt 37
53: aload 4
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
lstore 6
start local 6 54: StackMap locals: long
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
aload 4
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.write:([Ljava/nio/ByteBuffer;)J
lstore 8
start local 8 55: lload 6
lload 8
lsub
lstore 6
56: lload 8
lconst_0
lcmp
ifle 58
lload 6
lconst_0
57: lcmp
ifgt 54
58: StackMap locals: long
StackMap stack:
iload 1
istore 10
start local 10 59: goto 70
60: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 11
start local 11 61: aload 11
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
astore 12
start local 12 62: aload 11
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getTrailer:()Ljava/nio/ByteBuffer;
astore 13
start local 13 63: aload 12
ifnull 64
aload 12
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 71
64: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
StackMap stack:
aload 11
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
ifnull 65
aload 11
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 71
65: StackMap locals:
StackMap stack:
aload 13
ifnull 67
aload 13
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 67
66: goto 71
67: StackMap locals:
StackMap stack:
aload 11
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.flushComplete:()V
68: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
aload 11
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
69: iinc 10 -1
end local 13 end local 12 end local 11 70: StackMap locals:
StackMap stack:
iload 10
ifgt 60
71: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 72
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
ifne 74
72: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
73: goto 75
74: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
75: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 90
iload 2
ifeq 90
76: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites:()V
77: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
ifne 90
78: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
aconst_null
aconst_null
invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
79: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
end local 10 end local 8 end local 6 80: goto 90
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int
StackMap stack: java.lang.Throwable
81: astore 6
start local 6 82: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
83: aload 0
aload 6
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markWritesBroken:(Ljava/lang/Throwable;)V
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 84: goto 90
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel
StackMap stack: java.lang.Throwable
85: astore 14
86: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
87: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 89
88: aload 0
new io.undertow.server.protocol.framed.AbstractFramedChannel$4
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$4.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
89: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 14
athrow
90: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel
StackMap stack:
aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
91: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 93
92: aload 0
new io.undertow.server.protocol.framed.AbstractFramedChannel$4
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$4.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
93: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 94 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
4 84 1 toSend I
6 12 2 frame TS;
14 84 2 finalFrame Z
15 84 3 it Ljava/util/ListIterator<TS;>;
17 21 4 sender TS;
27 29 4 e Ljava/lang/Throwable;
34 84 4 data [Ljava/nio/ByteBuffer;
35 84 5 j I
38 52 6 next TS;
39 52 7 frameHeader Lio/undertow/server/protocol/framed/SendFrameHeader;
40 52 8 frameHeaderByteBuffer Lio/undertow/connector/PooledByteBuffer;
41 52 9 frameTrailerBuffer Ljava/nio/ByteBuffer;
54 80 6 toWrite J
55 80 8 res J
59 80 10 max I
61 70 11 sinkChannel TS;
62 70 12 frameHeaderByteBuffer Lio/undertow/connector/PooledByteBuffer;
63 70 13 frameTrailerBuffer Ljava/nio/ByteBuffer;
82 84 6 e Ljava/lang/Throwable;
Exception table:
from to target type
23 25 26 Class java.lang.Throwable
36 80 81 Class java.io.IOException
36 80 81 Class java.lang.RuntimeException
36 80 81 Class java.lang.Error
3 29 85 any
33 85 85 any
void awaitWritable();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.awaitWritable:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Exceptions:
throws java.io.IOException
void awaitWritable(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
lload 1
aload 3
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 2 1 time J
0 2 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time
unit
protected void queueFrame();
descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.$assertionsDisabled:Z
ifne 1
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.contains:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isWritesBroken:()Z
ifne 2
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.isOpen:()Z
ifeq 2
aload 1
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isBroken:()Z
ifne 2
aload 1
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isOpen:()Z
ifne 4
2: StackMap locals:
StackMap stack:
aload 1
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
3: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
ifeq 6
aload 1
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isBufferFull:()Z
ifeq 7
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.flush:()V
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 8 1 channel TS;
Exceptions:
throws java.io.IOException
Signature: (TS;)V
MethodParameters:
Name Flags
channel final
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
ifne 5
1: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 4
2: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
new io.undertow.server.protocol.framed.AbstractFramedChannel$5
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$5.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
protected abstract boolean isLastFrameReceived();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract boolean isLastFrameSent();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void handleBrokenSourceChannel(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
e
protected abstract void handleBrokenSinkChannel(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
e
public org.xnio.ChannelListener$Setter<C> getReceiveSetter();
descriptor: ()Lorg/xnio/ChannelListener$Setter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiveSetter:Lorg/xnio/ChannelListener$SimpleSetter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Signature: ()Lorg/xnio/ChannelListener$Setter<TC;>;
public synchronized void suspendReceives();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
1: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
ifnonnull 6
2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
if_acmpne 5
3: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.server.protocol.framed.AbstractFramedChannel$6
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$6.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public synchronized void resumeReceives();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
if_acmpne 3
1: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.doResume:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.server.protocol.framed.AbstractFramedChannel$7
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$7.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
private void doResume();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 3
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
invokevirtual io.undertow.util.ReferenceCountedPooled.isFreed:()Z
ifne 3
1: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.wakeupReads:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public boolean isReceivesResumed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
invokeinterface io.undertow.UndertowLogger.isTraceEnabled:()Z
ifeq 2
1: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
ldc "Channel %s is being closed"
aload 0
invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
3: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
ifnull 6
4: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
5: aload 0
aconst_null
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Exceptions:
throws java.io.IOException
public org.xnio.ChannelListener$Setter<? extends io.undertow.server.protocol.framed.AbstractFramedChannel> getCloseSetter();
descriptor: ()Lorg/xnio/ChannelListener$Setter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Signature: ()Lorg/xnio/ChannelListener$Setter<+Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;
protected void markReadsBroken(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.readsBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 12
1: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
invokeinterface io.undertow.UndertowLogger.isDebugEnabled:()Z
ifeq 3
2: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
ldc "Marking reads broken on channel %s"
aload 0
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
ifnull 5
4: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.markStreamBroken:()V
5: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getReceivers:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
astore 2
start local 2 7: aload 2
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.markStreamBroken:()V
end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: aload 0
aload 1
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleBrokenSourceChannel:(Ljava/lang/Throwable;)V
10: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
11: aload 0
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
12: StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 13 1 cause Ljava/lang/Throwable;
7 8 2 r Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
MethodParameters:
Name Flags
cause
protected abstract void closeSubChannels();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected void markWritesBroken(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.writesBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 25
1: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
invokeinterface io.undertow.UndertowLogger.isDebugEnabled:()Z
ifeq 3
2: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
ldc "Marking writes broken on channel %s"
aload 0
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleBrokenSinkChannel:(Ljava/lang/Throwable;)V
4: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
5: aload 0
dup
astore 2
monitorenter
6: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable io.undertow.server.protocol.framed.AbstractFramedChannel top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 3
start local 3 8: aload 3
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokeinterface java.util.List.clear:()V
11: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 4
goto 14
StackMap locals:
StackMap stack:
12: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 3
start local 3 13: aload 3
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
end local 3 14: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
15: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
16: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 4
goto 19
StackMap locals:
StackMap stack:
17: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
astore 3
start local 3 18: aload 3
invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
end local 3 19: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
20: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
21: aload 2
monitorexit
22: goto 25
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable io.undertow.server.protocol.framed.AbstractFramedChannel
StackMap stack: java.lang.Throwable
23: aload 2
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 26 1 cause Ljava/lang/Throwable;
8 9 3 channel TS;
13 14 3 channel TS;
18 19 3 channel TS;
Exception table:
from to target type
6 22 23 any
23 24 23 any
MethodParameters:
Name Flags
cause
protected boolean isWritesBroken();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.writesBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
protected boolean isReadsBroken();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.readsBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
void resumeWrites();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
void suspendWrites();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
void wakeupWrites();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.wakeupWrites:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
org.xnio.channels.StreamSourceChannel getSourceChannel();
descriptor: ()Lorg/xnio/channels/StreamSourceChannel;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
void notifyFrameReadComplete(io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<C, R, S>);
descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
flags: (0x0000)
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 1 1 channel Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
Signature: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;)V
MethodParameters:
Name Flags
channel
protected abstract java.util.Collection<io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<C, R, S>> getReceivers();
descriptor: ()Ljava/util/Collection;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()Ljava/util/Collection<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;>;
public void setIdleTimeout(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.idleTimeoutConduit:Lio/undertow/conduits/IdleTimeoutConduit;
lload 1
invokevirtual io.undertow.conduits.IdleTimeoutConduit.setIdleTimeout:(J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 2 1 timeout J
MethodParameters:
Name Flags
timeout
public long getIdleTimeout();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.idleTimeoutConduit:Lio/undertow/conduits/IdleTimeoutConduit;
invokevirtual io.undertow.conduits.IdleTimeoutConduit.getIdleTimeout:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
protected io.undertow.server.protocol.framed.FramePriority<C, R, S> getFramePriority();
descriptor: ()Lio/undertow/server/protocol/framed/FramePriority;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Signature: ()Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;
public void addCloseTask(org.xnio.ChannelListener<C>);
descriptor: (Lorg/xnio/ChannelListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeTasks:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 2 1 task Lorg/xnio/ChannelListener<TC;>;
Signature: (Lorg/xnio/ChannelListener<TC;>;)V
MethodParameters:
Name Flags
task final
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " peer "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " local "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getLocalAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "[ "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
ifnonnull 1
ldc "No Receiver"
goto 2
StackMap locals:
StackMap stack: java.lang.StringBuilder
1: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel
StackMap stack: java.lang.StringBuilder java.lang.String
2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " -- "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " -- "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
protected org.xnio.StreamConnection getUnderlyingConnection();
descriptor: ()Lorg/xnio/StreamConnection;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
protected org.xnio.ChannelExceptionHandler<org.xnio.channels.SuspendableWriteChannel> writeExceptionHandler();
descriptor: ()Lorg/xnio/ChannelExceptionHandler;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new io.undertow.server.protocol.framed.AbstractFramedChannel$8
dup
aload 0
invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$8.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
Signature: ()Lorg/xnio/ChannelExceptionHandler<Lorg/xnio/channels/SuspendableWriteChannel;>;
public boolean isRequireExplicitFlush();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
public void setRequireExplicitFlush(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
0 2 1 requireExplicitFlush Z
MethodParameters:
Name Flags
requireExplicitFlush
protected org.xnio.OptionMap getSettings();
descriptor: ()Lorg/xnio/OptionMap;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.protocol.framed.AbstractFramedChannel.settings:Lorg/xnio/OptionMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
}
Signature: <C:Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;R:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;S:Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;>Ljava/lang/Object;Lorg/xnio/channels/ConnectedChannel;
SourceFile: "AbstractFramedChannel.java"
NestMembers:
io.undertow.server.protocol.framed.AbstractFramedChannel$1 io.undertow.server.protocol.framed.AbstractFramedChannel$2 io.undertow.server.protocol.framed.AbstractFramedChannel$2$1 io.undertow.server.protocol.framed.AbstractFramedChannel$3 io.undertow.server.protocol.framed.AbstractFramedChannel$4 io.undertow.server.protocol.framed.AbstractFramedChannel$5 io.undertow.server.protocol.framed.AbstractFramedChannel$6 io.undertow.server.protocol.framed.AbstractFramedChannel$7 io.undertow.server.protocol.framed.AbstractFramedChannel$8 io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$1 io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2 io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener$1 io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener
InnerClasses:
io.undertow.server.protocol.framed.AbstractFramedChannel$1
io.undertow.server.protocol.framed.AbstractFramedChannel$2
io.undertow.server.protocol.framed.AbstractFramedChannel$3
io.undertow.server.protocol.framed.AbstractFramedChannel$4
io.undertow.server.protocol.framed.AbstractFramedChannel$5
io.undertow.server.protocol.framed.AbstractFramedChannel$6
io.undertow.server.protocol.framed.AbstractFramedChannel$7
io.undertow.server.protocol.framed.AbstractFramedChannel$8
private FrameCloseListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener of io.undertow.server.protocol.framed.AbstractFramedChannel
private final FrameReadListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener of io.undertow.server.protocol.framed.AbstractFramedChannel
private FrameWriteListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener of io.undertow.server.protocol.framed.AbstractFramedChannel
public abstract FreeNotifier = io.undertow.util.ReferenceCountedPooled$FreeNotifier of io.undertow.util.ReferenceCountedPooled
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener