class org.glassfish.grizzly.http2.DefaultOutputSink implements org.glassfish.grizzly.http2.StreamOutputSink
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.glassfish.grizzly.http2.DefaultOutputSink
super_class: java.lang.Object
{
private static final java.util.logging.Logger LOGGER;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MAX_OUTPUT_QUEUE_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int ZERO_QUEUE_RECORD_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord TERMINATING_QUEUE_RECORD;
descriptor: Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final org.glassfish.grizzly.asyncqueue.TaskQueue<org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord> outputQueue;
descriptor: Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
flags: (0x0010) ACC_FINAL
Signature: Lorg/glassfish/grizzly/asyncqueue/TaskQueue<Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;>;
private final java.util.concurrent.atomic.AtomicInteger availStreamWindowSize;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean isLastFrameQueued;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private org.glassfish.grizzly.http2.Termination terminationFlag;
descriptor: Lorg/glassfish/grizzly/http2/Termination;
flags: (0x0002) ACC_PRIVATE
private final org.glassfish.grizzly.http2.Http2Session http2Session;
descriptor: Lorg/glassfish/grizzly/http2/Http2Session;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.glassfish.grizzly.http2.Http2Stream stream;
descriptor: Lorg/glassfish/grizzly/http2/Http2Stream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicInteger unflushedWritesCounter;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object flushHandlersSync;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.glassfish.grizzly.http2.BundleQueue<org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.http2.Http2Stream>> flushHandlersQueue;
descriptor: Lorg/glassfish/grizzly/http2/BundleQueue;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/glassfish/grizzly/http2/BundleQueue<Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/http2/Http2Stream;>;>;
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=6, locals=0, args_size=0
0: ldc Lorg/glassfish/grizzly/http2/DefaultOutputSink;
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 org.glassfish.grizzly.http2.DefaultOutputSink.$assertionsDisabled:Z
3: ldc Lorg/glassfish/grizzly/http2/StreamOutputSink;
invokestatic org.glassfish.grizzly.Grizzly.logger:(Ljava/lang/Class;)Ljava/util/logging/Logger;
putstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
4: new org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
dup
aconst_null
aconst_null
iconst_1
iconst_1
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.<init>:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)V
5: putstatic org.glassfish.grizzly.http2.DefaultOutputSink.TERMINATING_QUEUE_RECORD:Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
6: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.glassfish.grizzly.http2.Http2Stream);
descriptor: (Lorg/glassfish/grizzly/http2/Http2Stream;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new org.glassfish.grizzly.http2.DefaultOutputSink$1
dup
aload 0
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$1.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;)V
invokestatic org.glassfish.grizzly.asyncqueue.TaskQueue.createTaskQueue:(Lorg/glassfish/grizzly/asyncqueue/TaskQueue$MutableMaxQueueSize;)Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
putfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
3: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersSync:Ljava/lang/Object;
5: aload 0
aload 1
putfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
6: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getHttp2Session:()Lorg/glassfish/grizzly/http2/Http2Session;
putfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
7: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
aload 1
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getPeerWindowSize:()I
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 9 1 stream Lorg/glassfish/grizzly/http2/Http2Stream;
MethodParameters:
Name Flags
stream final
public boolean canWrite();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.size:()I
ldc 65536
if_icmpge 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 Lorg/glassfish/grizzly/http2/DefaultOutputSink;
public void notifyWritePossible(org.glassfish.grizzly.WriteHandler);
descriptor: (Lorg/glassfish/grizzly/WriteHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 1
ldc 65536
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.notifyWritePossible:(Lorg/glassfish/grizzly/WriteHandler;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 2 1 writeHandler Lorg/glassfish/grizzly/WriteHandler;
MethodParameters:
Name Flags
writeHandler final
private void assertReady();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isTerminated:()Z
ifeq 6
1: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 5
2: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Terminated!!! id={0} description={1}"
3: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.terminationFlag:Lorg/glassfish/grizzly/http2/Termination;
invokevirtual org.glassfish.grizzly.http2.Termination.getDescription:()Ljava/lang/String;
aastore
4: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
new java.io.IOException
dup
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.terminationFlag:Lorg/glassfish/grizzly/http2/Termination;
invokevirtual org.glassfish.grizzly.http2.Termination.getDescription:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.isLastFrameQueued:Z
ifeq 8
7: new java.io.IOException
dup
ldc "Write beyond end of stream"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
Exceptions:
throws java.io.IOException
public void onPeerWindowUpdate(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
istore 2
start local 2 1: iload 1
ifle 6
iload 2
ifle 6
iload 2
iload 1
iadd
ifge 6
2: new org.glassfish.grizzly.http2.Http2StreamException
dup
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getId:()I
3: getstatic org.glassfish.grizzly.http2.frames.ErrorCode.FLOW_CONTROL_ERROR:Lorg/glassfish/grizzly/http2/frames/ErrorCode;
4: ldc "Session flow-control window overflow."
5: invokespecial org.glassfish.grizzly.http2.Http2StreamException.<init>:(ILorg/glassfish/grizzly/http2/frames/ErrorCode;Ljava/lang/String;)V
athrow
6: StackMap locals: int
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
7: goto 49
8: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.poll:()Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;
checkcast org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
astore 3
start local 3 9: aload 3
ifnonnull 11
10: return
11: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack:
aload 3
getstatic org.glassfish.grizzly.http2.DefaultOutputSink.TERMINATING_QUEUE_RECORD:Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
if_acmpne 15
12: aload 0
iconst_0
iconst_1
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
13: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.writeEmptyFin:()V
14: return
15: StackMap locals:
StackMap stack:
aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.chunkedCompletionHandler:Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
16: astore 4
start local 4 17: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isLast:Z
istore 5
start local 5 18: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isZeroSizeData:Z
istore 6
start local 6 19: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.resource:Lorg/glassfish/grizzly/http2/Source;
astore 7
start local 7 20: aload 0
aload 7
invokevirtual org.glassfish.grizzly.http2.Source.remaining:()I
i2l
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.checkOutputWindow:(J)I
istore 8
start local 8 21: aload 7
iload 8
invokevirtual org.glassfish.grizzly.http2.Source.read:(I)Lorg/glassfish/grizzly/Buffer;
astore 9
start local 9 22: aload 7
invokevirtual org.glassfish.grizzly.http2.Source.hasRemaining:()Z
istore 10
start local 10 23: iload 10
ifeq 28
24: aload 3
aload 7
aload 4
iload 5
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.reset:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Z)V
25: aload 3
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.incChunksCounter:()V
26: iconst_0
istore 5
27: goto 30
28: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int
StackMap stack:
aload 3
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.release:()V
29: aconst_null
astore 3
30: StackMap locals:
StackMap stack:
aload 9
ifnull 43
31: aload 9
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 32
iload 5
ifeq 43
32: StackMap locals:
StackMap stack:
aload 9
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 11
start local 11 33: aload 0
aconst_null
aload 9
aload 4
34: aconst_null
iload 5
35: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
36: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 11
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
37: aload 0
iload 11
38: iload 6
aload 3
ifnonnull 39
iconst_1
goto 40
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int
39: iconst_0
40: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int int
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
41: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.doNotify:()V
end local 11 42: goto 46
StackMap locals:
StackMap stack:
43: iload 6
ifeq 46
aload 3
ifnonnull 46
44: aload 0
iconst_0
iconst_1
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
45: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.doNotify:()V
46: StackMap locals:
StackMap stack:
aload 3
ifnull 49
47: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 3
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.setCurrentElement:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)V
48: goto 51
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 49: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink int int
StackMap stack:
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isWantToWrite:()Z
ifeq 51
50: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.isEmpty:()Z
ifeq 8
51: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 52 1 delta I
1 52 2 currentWindow I
9 49 3 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
17 49 4 completionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
18 49 5 isLast Z
19 49 6 isZeroSizeData Z
20 49 7 resource Lorg/glassfish/grizzly/http2/Source;
21 49 8 bytesToSend I
22 49 9 dataChunkToSend Lorg/glassfish/grizzly/Buffer;
23 49 10 hasRemaining Z
33 42 11 dataChunkToSendSize I
Exceptions:
throws org.glassfish.grizzly.http2.Http2StreamException
MethodParameters:
Name Flags
delta final
public synchronized void writeDownStream(org.glassfish.grizzly.http.HttpPacket, org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.WriteResult>, org.glassfish.grizzly.asyncqueue.MessageCloner<org.glassfish.grizzly.Buffer>);
descriptor: (Lorg/glassfish/grizzly/http/HttpPacket;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=23, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.assertReady:()V
2: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getOutputHttpHeader:()Lorg/glassfish/grizzly/http/HttpHeader;
astore 5
start local 5 3: aload 1
invokestatic org.glassfish.grizzly.http.HttpContent.isContent:(Lorg/glassfish/grizzly/http/HttpPacket;)Z
ifeq 4
aload 1
checkcast org.glassfish.grizzly.http.HttpContent
goto 5
StackMap locals: org.glassfish.grizzly.http.HttpHeader
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: org.glassfish.grizzly.http.HttpContent
5: astore 6
start local 6 6: aconst_null
astore 7
start local 7 7: aconst_null
astore 8
start local 8 8: iconst_0
istore 9
start local 9 9: aload 5
invokevirtual org.glassfish.grizzly.http.HttpHeader.isCommitted:()Z
ifne 56
10: aload 5
invokevirtual org.glassfish.grizzly.http.HttpHeader.isExpectContent:()Z
ifeq 14
11: aload 6
ifnull 13
aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.isLast:()Z
ifeq 13
12: aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.getContent:()Lorg/glassfish/grizzly/Buffer;
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifeq 14
13: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int
StackMap stack:
iconst_0
goto 15
StackMap locals:
StackMap stack:
14: iconst_1
StackMap locals:
StackMap stack: int
15: istore 10
start local 10 16: iconst_1
istore 9
17: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
18: invokestatic org.glassfish.grizzly.http2.NetLogger.isActive:()Z
istore 11
start local 11 19: iload 11
ifeq 20
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
goto 21
StackMap locals: int int
StackMap stack:
20: aconst_null
StackMap locals:
StackMap stack: java.util.HashMap
21: astore 12
start local 12 22: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
23: aload 2
aload 5
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getId:()I
iload 10
aconst_null
aload 12
24: invokevirtual org.glassfish.grizzly.http2.Http2Session.encodeHttpHeaderAsHeaderFrames:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpHeader;IZLjava/util/List;Ljava/util/Map;)Ljava/util/List;
astore 7
25: iload 11
ifeq 32
26: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 31
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int int int java.util.Map top java.util.Iterator
StackMap stack:
27: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http2.frames.Http2Frame
astore 13
start local 13 28: aload 13
invokevirtual org.glassfish.grizzly.http2.frames.Http2Frame.getType:()I
iconst_5
if_icmpne 31
29: getstatic org.glassfish.grizzly.http2.NetLogger$Context.TX:Lorg/glassfish/grizzly/http2/NetLogger$Context;
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
aload 13
checkcast org.glassfish.grizzly.http2.frames.HeadersFrame
aload 12
invokestatic org.glassfish.grizzly.http2.NetLogger.log:(Lorg/glassfish/grizzly/http2/NetLogger$Context;Lorg/glassfish/grizzly/http2/Http2Session;Lorg/glassfish/grizzly/http2/frames/HeadersFrame;Ljava/util/Map;)V
30: goto 32
end local 13 31: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
32: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int int int java.util.Map
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
iload 10
invokevirtual org.glassfish.grizzly.http2.Http2Stream.onSndHeaders:(Z)V
33: aload 5
invokevirtual org.glassfish.grizzly.http.HttpHeader.isRequest:()Z
ifne 46
34: aload 5
checkcast org.glassfish.grizzly.http.HttpResponsePacket
astore 13
start local 13 35: aload 13
invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.isAcknowledgement:()Z
ifeq 46
36: aload 13
invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.acknowledged:()V
37: aload 13
invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.getHeaders:()Lorg/glassfish/grizzly/http/util/MimeHeaders;
invokevirtual org.glassfish.grizzly.http.util.MimeHeaders.clear:()V
38: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
39: aload 0
aload 7
aconst_null
40: new org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
dup
aload 0
aload 3
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;Lorg/glassfish/grizzly/CompletionHandler;)V
41: aload 4
iconst_0
42: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
43: iload 9
ifeq 45
44: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
45: StackMap locals: org.glassfish.grizzly.http.HttpResponsePacket
StackMap stack:
return
end local 13 46: StackMap locals:
StackMap stack:
aload 5
iconst_1
invokevirtual org.glassfish.grizzly.http.HttpHeader.setCommitted:(Z)V
47: iload 10
ifne 48
aload 6
ifnonnull 56
48: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
49: aload 0
aload 7
aconst_null
50: new org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
dup
aload 0
aload 3
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;Lorg/glassfish/grizzly/CompletionHandler;)V
51: aload 4
iload 10
52: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
53: iload 9
ifeq 55
54: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
55: StackMap locals:
StackMap stack:
return
end local 12 end local 11 end local 10 56: StackMap locals:
StackMap stack:
aload 6
ifnonnull 60
57: iload 9
ifeq 59
58: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
59: StackMap locals:
StackMap stack:
return
60: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
getfield org.glassfish.grizzly.http2.Http2Session.handlerFilter:Lorg/glassfish/grizzly/http2/Http2BaseFilter;
aload 6
aload 2
invokevirtual org.glassfish.grizzly.http2.Http2BaseFilter.onHttpContentEncoded:(Lorg/glassfish/grizzly/http/HttpContent;Lorg/glassfish/grizzly/filterchain/FilterChainContext;)V
61: aconst_null
astore 10
start local 10 62: aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.isLast:()Z
istore 11
start local 11 63: aload 6
invokestatic org.glassfish.grizzly.http.HttpTrailer.isTrailer:(Lorg/glassfish/grizzly/http/HttpContent;)Z
istore 12
start local 12 64: aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.getContent:()Lorg/glassfish/grizzly/Buffer;
astore 13
start local 13 65: aload 13
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 14
start local 14 66: iload 11
ifeq 74
iload 14
ifne 74
67: iload 12
ifeq 70
68: iconst_1
istore 9
69: aload 0
aload 3
aload 4
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Lorg/glassfish/grizzly/http/HttpTrailer;)V
70: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int
StackMap stack:
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.close:()V
71: iload 9
ifeq 73
72: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
73: StackMap locals:
StackMap stack:
return
74: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
75: new org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
dup
aload 0
aload 3
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;Lorg/glassfish/grizzly/CompletionHandler;)V
76: astore 15
start local 15 77: iconst_0
istore 16
start local 16 78: iload 14
ifne 79
iconst_1
goto 80
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int
StackMap stack:
79: iconst_0
StackMap locals:
StackMap stack: int
80: istore 17
start local 17 81: iload 17
ifeq 82
iconst_1
goto 83
StackMap locals: int
StackMap stack:
82: iload 14
StackMap locals:
StackMap stack: int
83: istore 18
start local 18 84: aload 0
iload 18
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.reserveWriteQueueSpace:(I)I
iload 18
if_icmple 103
85: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.$assertionsDisabled:Z
ifne 86
aload 7
ifnull 86
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
86: StackMap locals: int
StackMap stack:
aload 4
ifnull 91
87: aload 4
88: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getConnection:()Lorg/glassfish/grizzly/Connection;
aload 13
89: invokeinterface org.glassfish.grizzly.asyncqueue.MessageCloner.clone:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.Buffer
astore 13
90: iconst_1
istore 16
91: StackMap locals:
StackMap stack:
new org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
dup
92: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokestatic org.glassfish.grizzly.http2.Source.factory:(Lorg/glassfish/grizzly/http2/Http2Stream;)Lorg/glassfish/grizzly/http2/Source$SourceFactory;
93: aload 13
invokevirtual org.glassfish.grizzly.http2.Source$SourceFactory.createBufferSource:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http2/Source;
94: aload 15
iload 11
iload 17
95: invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.<init>:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)V
astore 8
96: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 8
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.offer:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)V
97: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.size:()I
iload 18
if_icmpne 99
98: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 8
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.remove:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)Z
ifne 102
99: StackMap locals:
StackMap stack:
iload 9
ifeq 101
100: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
101: StackMap locals:
StackMap stack:
return
102: StackMap locals:
StackMap stack:
aconst_null
astore 8
103: StackMap locals:
StackMap stack:
aload 13
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 19
start local 19 104: aload 0
iload 19
i2l
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.checkOutputWindow:(J)I
istore 20
start local 20 105: iload 20
iload 19
if_icmpge 121
106: iload 16
ifne 111
aload 4
ifnull 111
107: aload 4
108: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getConnection:()Lorg/glassfish/grizzly/Connection;
aload 13
109: invokeinterface org.glassfish.grizzly.asyncqueue.MessageCloner.clone:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.Buffer
astore 13
110: iconst_1
istore 16
111: StackMap locals: int int
StackMap stack:
aload 0
112: aload 13
iload 20
113: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.splitOutputBufferIfNeeded:(Lorg/glassfish/grizzly/Buffer;I)Lorg/glassfish/grizzly/Buffer;
astore 21
start local 21 114: new org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
dup
115: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokestatic org.glassfish.grizzly.http2.Source.factory:(Lorg/glassfish/grizzly/http2/Http2Stream;)Lorg/glassfish/grizzly/http2/Source$SourceFactory;
116: aload 21
invokevirtual org.glassfish.grizzly.http2.Source$SourceFactory.createBufferSource:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http2/Source;
117: aload 15
118: iload 11
iload 17
119: invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.<init>:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)V
astore 8
120: iconst_0
istore 11
end local 21 121: StackMap locals:
StackMap stack:
aload 13
ifnull 130
122: aload 13
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 123
iload 11
ifeq 130
123: StackMap locals:
StackMap stack:
aload 13
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 21
start local 21 124: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 21
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
125: aload 0
iload 21
126: iload 17
aload 8
ifnonnull 127
iconst_1
goto 128
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int
127: iconst_0
128: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int int
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
129: aload 13
astore 10
end local 21 130: StackMap locals:
StackMap stack:
aload 7
ifnonnull 131
aload 10
ifnull 139
131: StackMap locals:
StackMap stack:
aload 8
ifnull 133
132: aload 8
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.incChunksCounter:()V
133: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 10
aload 15
134: iload 16
ifeq 135
aconst_null
goto 136
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink java.util.List org.glassfish.grizzly.Buffer org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
135: aload 4
136: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink java.util.List org.glassfish.grizzly.Buffer org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner
iload 11
ifeq 137
iload 12
ifne 137
iconst_1
goto 138
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink java.util.List org.glassfish.grizzly.Buffer org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner
137: iconst_0
138: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int org.glassfish.grizzly.Buffer int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink java.util.List org.glassfish.grizzly.Buffer org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner int
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
139: StackMap locals:
StackMap stack:
iload 11
ifeq 151
140: iload 12
ifeq 143
141: iconst_1
istore 9
142: aload 0
aload 3
aload 4
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Lorg/glassfish/grizzly/http/HttpTrailer;)V
143: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.close:()V
144: iload 9
ifeq 146
145: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
146: StackMap locals:
StackMap stack:
return
end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 147: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int
StackMap stack: java.lang.Throwable
astore 22
148: iload 9
ifeq 150
149: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
150: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 22
athrow
151: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http.HttpPacket org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpHeader org.glassfish.grizzly.http.HttpContent java.util.List org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord int
StackMap stack:
iload 9
ifeq 153
152: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
153: StackMap locals:
StackMap stack:
aload 8
ifnonnull 155
154: return
155: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.addOutputQueueRecord:(Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;)V
156: return
end local 9 end local 8 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 157 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 157 1 httpPacket Lorg/glassfish/grizzly/http/HttpPacket;
0 157 2 ctx Lorg/glassfish/grizzly/filterchain/FilterChainContext;
0 157 3 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
0 157 4 messageCloner Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;
3 157 5 httpHeader Lorg/glassfish/grizzly/http/HttpHeader;
6 157 6 httpContent Lorg/glassfish/grizzly/http/HttpContent;
7 157 7 headerFrames Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;
8 157 8 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
9 157 9 isDeflaterLocked Z
16 56 10 isNoPayload Z
19 56 11 logging Z
22 56 12 capture Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
28 31 13 http2Frame Lorg/glassfish/grizzly/http2/frames/Http2Frame;
35 46 13 response Lorg/glassfish/grizzly/http/HttpResponsePacket;
62 147 10 dataToSend Lorg/glassfish/grizzly/Buffer;
63 147 11 isLast Z
64 147 12 isTrailer Z
65 147 13 data Lorg/glassfish/grizzly/Buffer;
66 147 14 dataSize I
77 147 15 flushCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
78 147 16 isDataCloned Z
81 147 17 isZeroSizeData Z
84 147 18 spaceToReserve I
104 147 19 remaining I
105 147 20 fitWindowLen I
114 121 21 dataChunkToStore Lorg/glassfish/grizzly/Buffer;
124 130 21 dataChunkToSendSize I
Exception table:
from to target type
9 43 147 any
46 53 147 any
56 57 147 any
60 71 147 any
74 99 147 any
102 144 147 any
Exceptions:
throws java.io.IOException
Signature: (Lorg/glassfish/grizzly/http/HttpPacket;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;)V
MethodParameters:
Name Flags
httpPacket final
ctx final
completionHandler final
messageCloner final
public void flush(org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.http2.Http2Stream>);
descriptor: (Lorg/glassfish/grizzly/CompletionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ifle 15
1: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersSync:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
istore 3
start local 3 3: iload 3
ifle 11
4: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersQueue:Lorg/glassfish/grizzly/http2/BundleQueue;
ifnonnull 8
5: aload 0
6: new org.glassfish.grizzly.http2.BundleQueue
dup
invokespecial org.glassfish.grizzly.http2.BundleQueue.<init>:()V
7: putfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersQueue:Lorg/glassfish/grizzly/http2/BundleQueue;
8: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersQueue:Lorg/glassfish/grizzly/http2/BundleQueue;
iload 3
aload 1
invokevirtual org.glassfish.grizzly.http2.BundleQueue.add:(ILjava/lang/Object;)V
9: aload 2
monitorexit
10: return
end local 3 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:
aload 1
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokeinterface org.glassfish.grizzly.CompletionHandler.completed:(Ljava/lang/Object;)V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 17 1 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/http2/Http2Stream;>;
3 11 3 counterNow I
Exception table:
from to target type
2 10 13 any
11 12 13 any
13 14 13 any
Signature: (Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/http2/Http2Stream;>;)V
MethodParameters:
Name Flags
completionHandler final
private int checkOutputWindow(long);
descriptor: (J)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
lload 1
l2i
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 1 1 size J
MethodParameters:
Name Flags
size final
private org.glassfish.grizzly.Buffer splitOutputBufferIfNeeded(org.glassfish.grizzly.Buffer, int);
descriptor: (Lorg/glassfish/grizzly/Buffer;I)Lorg/glassfish/grizzly/Buffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
aload 1
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
if_icmpne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 1
invokeinterface org.glassfish.grizzly.Buffer.position:()I
iload 2
iadd
invokeinterface org.glassfish.grizzly.Buffer.split:(I)Lorg/glassfish/grizzly/Buffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 3 1 buffer Lorg/glassfish/grizzly/Buffer;
0 3 2 length I
MethodParameters:
Name Flags
buffer final
length final
private void flushToConnectionOutputSink(java.util.List<org.glassfish.grizzly.http2.frames.Http2Frame>, org.glassfish.grizzly.Buffer, org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.WriteResult>, org.glassfish.grizzly.asyncqueue.MessageCloner<org.glassfish.grizzly.Buffer>, );
descriptor: (Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getOutputSink:()Lorg/glassfish/grizzly/http2/Http2SessionOutputSink;
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
aload 1
1: aload 2
aload 3
aload 4
iload 5
2: invokevirtual org.glassfish.grizzly.http2.Http2SessionOutputSink.writeDataDownStream:(Lorg/glassfish/grizzly/http2/Http2Stream;Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
3: iload 5
ifeq 5
4: aload 0
getstatic org.glassfish.grizzly.http2.Termination.OUT_FIN_TERMINATION:Lorg/glassfish/grizzly/http2/Termination;
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.terminate:(Lorg/glassfish/grizzly/http2/Termination;)V
5: StackMap locals:
StackMap stack:
return
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 6 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 6 1 headerFrames Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;
0 6 2 data Lorg/glassfish/grizzly/Buffer;
0 6 3 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
0 6 4 messageCloner Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;
0 6 5 isLast Z
Signature: (Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;Z)V
MethodParameters:
Name Flags
headerFrames final
data final
completionHandler final
messageCloner final
isLast final
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isClosed:()Z
ifne 10
1: aload 0
iconst_1
putfield org.glassfish.grizzly.http2.DefaultOutputSink.isLastFrameQueued:Z
2: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.isEmpty:()Z
ifeq 5
3: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.writeEmptyFin:()V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
iconst_1
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.reserveSpace:(I)I
pop
6: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
getstatic org.glassfish.grizzly.http2.DefaultOutputSink.TERMINATING_QUEUE_RECORD:Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.offer:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)V
7: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.size:()I
iconst_1
if_icmpne 10
8: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
getstatic org.glassfish.grizzly.http2.DefaultOutputSink.TERMINATING_QUEUE_RECORD:Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.remove:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)Z
ifeq 10
9: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.writeEmptyFin:()V
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
public synchronized void terminate(org.glassfish.grizzly.http2.Termination);
descriptor: (Lorg/glassfish/grizzly/http2/Termination;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isTerminated:()Z
ifne 4
1: aload 0
aload 1
putfield org.glassfish.grizzly.http2.DefaultOutputSink.terminationFlag:Lorg/glassfish/grizzly/http2/Termination;
2: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.onClose:()V
3: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.onOutputClosed:()V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 5 1 terminationFlag Lorg/glassfish/grizzly/http2/Termination;
MethodParameters:
Name Flags
terminationFlag final
public boolean isClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.isLastFrameQueued:Z
ifne 1
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isTerminated:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
public int getUnflushedWritesCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
private boolean isTerminated();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.terminationFlag:Lorg/glassfish/grizzly/http2/Termination;
ifnull 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 Lorg/glassfish/grizzly/http2/DefaultOutputSink;
private void writeEmptyFin();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isTerminated:()Z
ifne 5
1: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
2: aload 0
aconst_null
getstatic org.glassfish.grizzly.memory.Buffers.EMPTY_BUFFER:Lorg/glassfish/grizzly/Buffer;
3: new org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
dup
aload 0
aconst_null
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;Lorg/glassfish/grizzly/CompletionHandler;)V
aconst_null
iconst_1
4: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
private boolean isWantToWrite();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
istore 1
start local 1 1: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getPeerWindowSize:()I
istore 2
start local 2 2: iload 1
iload 2
iconst_4
idiv
if_icmplt 3
iconst_1
ireturn
StackMap locals: int int
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
1 4 1 availableWindowSizeBytesNow I
2 4 2 windowSizeLimit I
private void addOutputQueueRecord(org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord);
descriptor: (Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 1
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.setCurrentElement:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)V
1: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isWantToWrite:()Z
ifeq 41
2: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 1
aconst_null
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.compareAndSetCurrentElement:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)Z
ifeq 41
3: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.chunkedCompletionHandler:Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
4: astore 2
start local 2 5: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isLast:Z
istore 3
start local 3 6: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isZeroSizeData:Z
istore 4
start local 4 7: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.resource:Lorg/glassfish/grizzly/http2/Source;
astore 5
start local 5 8: aload 0
aload 5
invokevirtual org.glassfish.grizzly.http2.Source.remaining:()I
i2l
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.checkOutputWindow:(J)I
istore 6
start local 6 9: aload 5
iload 6
invokevirtual org.glassfish.grizzly.http2.Source.read:(I)Lorg/glassfish/grizzly/Buffer;
astore 7
start local 7 10: aload 5
invokevirtual org.glassfish.grizzly.http2.Source.hasRemaining:()Z
ifeq 18
11: aload 1
aload 5
12: aload 2
13: iload 3
14: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.reset:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Z)V
15: aload 1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.incChunksCounter:()V
16: iconst_0
istore 3
17: goto 20
18: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer
StackMap stack:
aload 1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.release:()V
19: aconst_null
astore 1
20: StackMap locals:
StackMap stack:
aload 7
ifnull 32
21: aload 7
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 22
iload 3
ifeq 32
22: StackMap locals:
StackMap stack:
aload 7
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 8
start local 8 23: aload 0
aconst_null
aload 7
24: aload 2
aconst_null
iload 3
25: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
26: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 8
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
27: aload 0
iload 8
iload 4
28: aload 1
ifnonnull 29
iconst_1
goto 30
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int
29: iconst_0
30: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int int
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
end local 8 31: goto 40
StackMap locals:
StackMap stack:
32: iload 4
ifeq 35
aload 1
ifnonnull 35
33: aload 0
iconst_0
iconst_1
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
34: goto 40
StackMap locals:
StackMap stack:
35: aload 7
ifnull 40
aload 7
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 40
36: aload 1
ifnull 41
37: aload 0
aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.resource:Lorg/glassfish/grizzly/http2/Source;
invokevirtual org.glassfish.grizzly.http2.Source.remaining:()I
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.reserveWriteQueueSpace:(I)I
pop
38: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 1
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.offer:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)V
39: goto 41
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 40: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack:
aload 1
ifnonnull 0
41: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 42 1 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
5 40 2 chunkedCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
6 40 3 isLast Z
7 40 4 isZeroSizeData Z
8 40 5 currentResource Lorg/glassfish/grizzly/http2/Source;
9 40 6 fitWindowLen I
10 40 7 dataChunkToSend Lorg/glassfish/grizzly/Buffer;
23 31 8 dataChunkToSendSize I
Exceptions:
throws org.glassfish.grizzly.http2.Http2StreamException
MethodParameters:
Name Flags
outputQueueRecord
private int reserveWriteQueueSpace(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
iload 1
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.reserveSpace:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 1 1 spaceToReserve I
MethodParameters:
Name Flags
spaceToReserve final
private void releaseWriteQueueSpace(int, boolean, boolean);
descriptor: (IZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 5
1: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
iload 2
ifeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack: org.glassfish.grizzly.asyncqueue.TaskQueue
2: iload 1
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink int int int
StackMap stack: org.glassfish.grizzly.asyncqueue.TaskQueue int
3: invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.releaseSpace:(I)I
pop
4: goto 7
StackMap locals:
StackMap stack:
5: iload 2
ifne 7
6: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
iload 1
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.releaseSpace:(I)I
pop
7: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 8 1 justSentBytes I
0 8 2 isAtomic Z
0 8 3 isEndOfChunk Z
MethodParameters:
Name Flags
justSentBytes final
isAtomic final
isEndOfChunk final
private void sendTrailers(org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.WriteResult>, org.glassfish.grizzly.asyncqueue.MessageCloner<org.glassfish.grizzly.Buffer>, org.glassfish.grizzly.http.HttpTrailer);
descriptor: (Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Lorg/glassfish/grizzly/http/HttpTrailer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
invokevirtual org.glassfish.grizzly.http2.Http2Session.getDeflaterLock:()Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: invokestatic org.glassfish.grizzly.http2.NetLogger.isActive:()Z
istore 4
start local 4 2: iload 4
ifeq 3
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
goto 4
StackMap locals: int
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.util.HashMap
4: astore 5
start local 5 5: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokevirtual org.glassfish.grizzly.http2.Http2Stream.getId:()I
6: new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
7: aload 3
invokevirtual org.glassfish.grizzly.http.HttpTrailer.getHeaders:()Lorg/glassfish/grizzly/http/util/MimeHeaders;
aload 5
8: invokevirtual org.glassfish.grizzly.http2.Http2Session.encodeTrailersAsHeaderFrames:(ILjava/util/List;Lorg/glassfish/grizzly/http/util/MimeHeaders;Ljava/util/Map;)Ljava/util/List;
9: astore 6
start local 6 10: iload 4
ifeq 17
11: aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 16
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpTrailer int java.util.Map java.util.List top java.util.Iterator
StackMap stack:
12: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http2.frames.Http2Frame
astore 7
start local 7 13: aload 7
invokevirtual org.glassfish.grizzly.http2.frames.Http2Frame.getType:()I
iconst_5
if_icmpne 16
14: getstatic org.glassfish.grizzly.http2.NetLogger$Context.TX:Lorg/glassfish/grizzly/http2/NetLogger$Context;
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
aload 7
checkcast org.glassfish.grizzly.http2.frames.HeadersFrame
aload 5
invokestatic org.glassfish.grizzly.http2.NetLogger.log:(Lorg/glassfish/grizzly/http2/NetLogger$Context;Lorg/glassfish/grizzly/http2/Http2Session;Lorg/glassfish/grizzly/http2/frames/HeadersFrame;Ljava/util/Map;)V
15: goto 17
end local 7 16: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
17: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.asyncqueue.MessageCloner org.glassfish.grizzly.http.HttpTrailer int java.util.Map java.util.List
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
18: aload 0
aload 6
aconst_null
19: new org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
dup
aload 0
aload 1
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;Lorg/glassfish/grizzly/CompletionHandler;)V
20: aload 2
iconst_1
21: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
22: return
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 23 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 23 1 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
0 23 2 messageCloner Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;
0 23 3 httpContent Lorg/glassfish/grizzly/http/HttpTrailer;
2 23 4 logging Z
5 23 5 capture Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
10 23 6 trailerFrames Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;
13 16 7 http2Frame Lorg/glassfish/grizzly/http2/frames/Http2Frame;
Exceptions:
throws java.io.IOException
Signature: (Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;Lorg/glassfish/grizzly/http/HttpTrailer;)V
MethodParameters:
Name Flags
completionHandler final
messageCloner final
httpContent final
}
SourceFile: "DefaultOutputSink.java"
NestMembers:
org.glassfish.grizzly.http2.DefaultOutputSink$1 org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
InnerClasses:
public abstract MutableMaxQueueSize = org.glassfish.grizzly.asyncqueue.TaskQueue$MutableMaxQueueSize of org.glassfish.grizzly.asyncqueue.TaskQueue
org.glassfish.grizzly.http2.DefaultOutputSink$1
private final FlushCompletionHandler = org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler of org.glassfish.grizzly.http2.DefaultOutputSink
private OutputQueueRecord = org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord of org.glassfish.grizzly.http2.DefaultOutputSink
final Context = org.glassfish.grizzly.http2.NetLogger$Context of org.glassfish.grizzly.http2.NetLogger
public final SourceFactory = org.glassfish.grizzly.http2.Source$SourceFactory of org.glassfish.grizzly.http2.Source