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/DefaultOutputSink;
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
putstatic org.glassfish.grizzly.http2.DefaultOutputSink.TERMINATING_QUEUE_RECORD:Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
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
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;
2: 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;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersSync:Ljava/lang/Object;
4: aload 0
aload 1
putfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
5: 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;
6: 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;
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 8 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 4
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 3
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}"
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
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
3: 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
4: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.isLastFrameQueued:Z
ifeq 6
5: new java.io.IOException
dup
ldc "Write beyond end of stream"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 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=5, locals=13, 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 3
iload 2
ifle 3
iload 2
iload 1
iadd
ifge 3
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
getstatic org.glassfish.grizzly.http2.frames.ErrorCode.FLOW_CONTROL_ERROR:Lorg/glassfish/grizzly/http2/frames/ErrorCode;
ldc "Session flow-control window overflow."
invokespecial org.glassfish.grizzly.http2.Http2StreamException.<init>:(ILorg/glassfish/grizzly/http2/frames/ErrorCode;Ljava/lang/String;)V
athrow
3: 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
4: goto 46
5: 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 6: aload 3
ifnonnull 8
7: return
8: 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 12
9: aload 0
iconst_0
iconst_1
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
10: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.writeEmptyFin:()V
11: return
12: StackMap locals:
StackMap stack:
aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.chunkedCompletionHandler:Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
astore 4
start local 4 13: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isLast:Z
istore 5
start local 5 14: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isZeroSizeData:Z
istore 6
start local 6 15: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.resource:Lorg/glassfish/grizzly/http2/Source;
astore 7
start local 7 16: aload 3
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.trailer:Lorg/glassfish/grizzly/http/HttpTrailer;
astore 8
start local 8 17: aload 8
ifnull 21
18: aconst_null
astore 3
19: aload 0
aload 4
aload 8
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
20: return
21: 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 org.glassfish.grizzly.http.HttpTrailer
StackMap stack:
aload 0
aload 7
invokevirtual org.glassfish.grizzly.http2.Source.remaining:()I
i2l
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.checkOutputWindow:(J)I
istore 9
start local 9 22: aload 7
iload 9
invokevirtual org.glassfish.grizzly.http2.Source.read:(I)Lorg/glassfish/grizzly/Buffer;
astore 10
start local 10 23: aload 7
invokevirtual org.glassfish.grizzly.http2.Source.hasRemaining:()Z
istore 11
start local 11 24: iload 11
ifeq 29
25: 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
26: aload 3
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.incChunksCounter:()V
27: iconst_0
istore 5
28: goto 31
29: StackMap locals: int org.glassfish.grizzly.Buffer int
StackMap stack:
aload 3
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.release:()V
30: aconst_null
astore 3
31: StackMap locals:
StackMap stack:
aload 10
ifnull 40
aload 10
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 32
iload 5
ifeq 40
32: StackMap locals:
StackMap stack:
aload 10
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 12
start local 12 33: aload 0
aload 10
aload 4
iload 5
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Z)V
34: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 12
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
35: aload 0
iload 12
iload 6
aload 3
ifnonnull 36
iconst_1
goto 37
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 org.glassfish.grizzly.http.HttpTrailer int org.glassfish.grizzly.Buffer int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int
36: iconst_0
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 org.glassfish.grizzly.http.HttpTrailer int org.glassfish.grizzly.Buffer int int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int int
37: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
38: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.doNotify:()V
end local 12 39: goto 43
StackMap locals:
StackMap stack:
40: iload 6
ifeq 43
aload 3
ifnonnull 43
41: aload 0
iconst_0
iconst_1
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
42: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.doNotify:()V
43: StackMap locals:
StackMap stack:
aload 3
ifnull 46
44: 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
45: goto 48
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 46: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink int int
StackMap stack:
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isWantToWrite:()Z
ifeq 47
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.isEmpty:()Z
ifeq 5
47: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.peek:()Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;
ifnull 48
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.peek:()Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;
checkcast org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.trailer:Lorg/glassfish/grizzly/http/HttpTrailer;
ifnonnull 5
48: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 49 1 delta I
1 49 2 currentWindow I
6 46 3 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
13 46 4 completionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
14 46 5 isLast Z
15 46 6 isZeroSizeData Z
16 46 7 resource Lorg/glassfish/grizzly/http2/Source;
17 46 8 currentTrailer Lorg/glassfish/grizzly/http/HttpTrailer;
22 46 9 bytesToSend I
23 46 10 dataChunkToSend Lorg/glassfish/grizzly/Buffer;
24 46 11 hasRemaining Z
33 39 12 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=5, locals=6, 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
aload 1
aload 2
aload 3
aload 4
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.writeDownStream0:(Lorg/glassfish/grizzly/http/HttpPacket;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;)Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
astore 5
start local 5 3: aload 5
ifnull 5
4: aload 0
aload 5
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.addOutputQueueRecord:(Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;)V
5: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
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 httpPacket Lorg/glassfish/grizzly/http/HttpPacket;
0 6 2 ctx Lorg/glassfish/grizzly/filterchain/FilterChainContext;
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;>;
3 6 5 next Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
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
private org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord writeDownStream0(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;)Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=25, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: 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 1: aload 1
invokestatic org.glassfish.grizzly.http.HttpContent.isContent:(Lorg/glassfish/grizzly/http/HttpPacket;)Z
ifeq 2
aload 1
checkcast org.glassfish.grizzly.http.HttpContent
goto 3
StackMap locals: org.glassfish.grizzly.http.HttpHeader
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: org.glassfish.grizzly.http.HttpContent
3: astore 6
start local 6 4: aconst_null
astore 7
start local 7 5: iconst_0
istore 8
start local 8 6: iconst_0
istore 9
start local 9 7: aload 6
ifnull 8
aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.isLast:()Z
ifeq 8
iconst_1
goto 9
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 int int
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 10
start local 10 10: aload 6
invokestatic org.glassfish.grizzly.http.HttpTrailer.isTrailer:(Lorg/glassfish/grizzly/http/HttpContent;)Z
istore 11
start local 11 11: aload 5
invokevirtual org.glassfish.grizzly.http.HttpHeader.isCommitted:()Z
ifne 61
12: aload 5
invokevirtual org.glassfish.grizzly.http.HttpHeader.isExpectContent:()Z
ifeq 15
13: aload 6
ifnull 14
aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.isLast:()Z
ifeq 14
aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.getContent:()Lorg/glassfish/grizzly/Buffer;
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifeq 15
14: StackMap locals: int int
StackMap stack:
iconst_0
goto 16
StackMap locals:
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: istore 12
start local 12 17: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
iload 12
invokedynamic get(Z)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/glassfish/grizzly/http2/DefaultOutputSink.lambda$0(Z)Ljava/lang/String; (6)
()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/util/function/Supplier;)V
18: 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
19: iconst_1
istore 9
20: invokestatic org.glassfish.grizzly.http2.NetLogger.isActive:()Z
istore 13
start local 13 21: iload 13
ifeq 22
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
goto 23
StackMap locals: int int
StackMap stack:
22: aconst_null
StackMap locals:
StackMap stack: java.util.HashMap
23: astore 14
start local 14 24: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.http2Session:Lorg/glassfish/grizzly/http2/Http2Session;
25: 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 12
aconst_null
aload 14
26: 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
27: iload 13
ifeq 34
28: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
goto 33
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 int int int int int int java.util.Map top java.util.Iterator
StackMap stack:
29: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http2.frames.Http2Frame
astore 15
start local 15 30: aload 15
invokevirtual org.glassfish.grizzly.http2.frames.Http2Frame.getType:()I
iconst_5
if_icmpne 33
31: 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 15
checkcast org.glassfish.grizzly.http2.frames.HeadersFrame
aload 14
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
32: goto 34
end local 15 33: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
34: 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 int int int int int int java.util.Map
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
iload 12
invokevirtual org.glassfish.grizzly.http2.Http2Stream.onSndHeaders:(Z)V
35: aload 5
invokevirtual org.glassfish.grizzly.http.HttpHeader.isRequest:()Z
ifne 49
36: aload 5
checkcast org.glassfish.grizzly.http.HttpResponsePacket
astore 15
start local 15 37: aload 15
invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.isAcknowledgement:()Z
ifeq 49
38: aload 15
invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.acknowledged:()V
39: aload 15
invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.getHeaders:()Lorg/glassfish/grizzly/http/util/MimeHeaders;
invokevirtual org.glassfish.grizzly.http.util.MimeHeaders.clear:()V
40: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
41: aload 0
aload 7
aload 3
aload 4
iconst_0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
42: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
ldc "Acknowledgement has been sent."
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
43: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
44: iload 8
ifeq 46
45: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
46: StackMap locals: org.glassfish.grizzly.http.HttpResponsePacket
StackMap stack:
iload 9
ifeq 48
47: 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
48: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 15 49: StackMap locals:
StackMap stack:
aload 5
iconst_1
invokevirtual org.glassfish.grizzly.http.HttpHeader.setCommitted:(Z)V
50: iload 12
ifne 51
aload 6
ifnonnull 61
51: 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
52: aload 0
aload 7
aload 3
aload 4
iload 12
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
53: iconst_0
istore 8
54: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
iload 12
invokedynamic get(Z)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/glassfish/grizzly/http2/DefaultOutputSink.lambda$1(Z)Ljava/lang/String; (6)
()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/util/function/Supplier;)V
55: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
56: iload 8
ifeq 58
57: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
58: StackMap locals:
StackMap stack:
iload 9
ifeq 60
59: 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
60: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 14 end local 13 end local 12 61: StackMap locals:
StackMap stack:
aload 6
ifnonnull 70
62: iconst_0
istore 8
63: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
ldc "Nothing to send, httpContent is null."
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
64: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
65: iload 8
ifeq 67
66: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
67: StackMap locals:
StackMap stack:
iload 9
ifeq 69
68: 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
69: StackMap locals:
StackMap stack:
aconst_null
areturn
70: 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
71: aload 6
invokevirtual org.glassfish.grizzly.http.HttpContent.getContent:()Lorg/glassfish/grizzly/Buffer;
astore 12
start local 12 72: aload 12
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 13
start local 13 73: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
74: 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
astore 14
start local 14 75: iload 13
ifne 76
iconst_1
goto 77
StackMap locals: org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
StackMap stack:
76: iconst_0
StackMap locals:
StackMap stack: int
77: istore 15
start local 15 78: iload 15
ifeq 79
iconst_1
goto 80
StackMap locals: int
StackMap stack:
79: iload 13
StackMap locals:
StackMap stack: int
80: istore 16
start local 16 81: iconst_0
istore 17
start local 17 82: aload 0
iload 16
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.reserveWriteQueueSpace:(I)I
istore 18
start local 18 83: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
iload 18
iload 16
invokedynamic get(II)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/glassfish/grizzly/http2/DefaultOutputSink.lambda$2(II)Ljava/lang/String; (6)
()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/util/function/Supplier;)V
84: iload 18
iload 16
if_icmple 112
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 int int
StackMap stack:
aload 4
ifnull 89
87: aload 4
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 12
invokeinterface org.glassfish.grizzly.asyncqueue.MessageCloner.clone:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.Buffer
astore 12
88: iconst_1
istore 17
89: StackMap locals:
StackMap stack:
aload 0
aload 12
aload 6
aload 14
90: iload 10
iload 15
91: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.createOutputQueueRecord:(Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http/HttpContent;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
astore 19
start local 19 92: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 19
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.offer:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)V
93: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.size:()I
iload 16
if_icmpeq 103
94: iload 10
ifeq 95
iload 11
ifeq 95
iconst_1
goto 96
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack:
95: iconst_0
StackMap locals:
StackMap stack: int
96: istore 8
97: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
98: iload 8
ifeq 100
99: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
100: StackMap locals:
StackMap stack:
iload 9
ifeq 102
101: 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
102: StackMap locals:
StackMap stack:
aconst_null
areturn
103: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.outputQueue:Lorg/glassfish/grizzly/asyncqueue/TaskQueue;
aload 19
invokevirtual org.glassfish.grizzly.asyncqueue.TaskQueue.remove:(Lorg/glassfish/grizzly/asyncqueue/AsyncQueueRecord;)Z
ifne 112
104: iconst_0
istore 8
105: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
ldc "The record has been already processed."
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
106: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
107: iload 8
ifeq 109
108: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
109: StackMap locals:
StackMap stack:
iload 9
ifeq 111
110: 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
111: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 19 112: StackMap locals:
StackMap stack:
aload 12
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 19
start local 19 113: aload 0
iload 19
i2l
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.checkOutputWindow:(J)I
istore 20
start local 20 114: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
iload 19
iload 20
invokedynamic get(II)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/glassfish/grizzly/http2/DefaultOutputSink.lambda$3(II)Ljava/lang/String; (6)
()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/util/function/Supplier;)V
115: iload 20
iload 19
if_icmplt 118
116: aconst_null
astore 21
start local 21 117: goto 126
end local 21 118: StackMap locals: int int
StackMap stack:
iload 17
ifne 121
aload 4
ifnull 121
119: aload 4
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 12
invokeinterface org.glassfish.grizzly.asyncqueue.MessageCloner.clone:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.Buffer
astore 12
120: iconst_1
istore 17
121: StackMap locals:
StackMap stack:
aload 0
aload 12
iload 20
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.splitOutputBufferIfNeeded:(Lorg/glassfish/grizzly/Buffer;I)Lorg/glassfish/grizzly/Buffer;
astore 22
start local 22 122: aload 0
aload 22
aconst_null
aload 14
iload 10
123: iload 15
124: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.createOutputQueueRecord:(Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http/HttpContent;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
astore 21
start local 21 125: iconst_0
istore 10
end local 22 126: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack:
aload 0
aload 21
ifnonnull 127
iconst_1
goto 128
StackMap locals:
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink
127: iconst_0
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 int int int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int
128: iload 10
aload 12
iload 15
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.prepareDataToSend:(ZZLorg/glassfish/grizzly/Buffer;Z)Lorg/glassfish/grizzly/Buffer;
astore 22
start local 22 129: aload 7
ifnonnull 130
aload 22
ifnull 138
130: StackMap locals: org.glassfish.grizzly.Buffer
StackMap stack:
aload 21
ifnull 132
131: aload 21
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.incChunksCounter:()V
132: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 22
aload 14
133: iload 17
ifeq 134
aconst_null
goto 135
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 int int int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.Buffer
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink java.util.List org.glassfish.grizzly.Buffer org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
134: aload 4
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 int int int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.Buffer
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
135: iload 10
ifeq 136
iload 11
ifne 136
iconst_1
goto 137
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 int int int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.Buffer
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
136: iconst_0
137: 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 int int int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.Buffer
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
138: StackMap locals:
StackMap stack:
getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "isLast="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 10
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
ldc "; isTrailer="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 11
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
139: iload 10
ifeq 140
iload 11
ifeq 140
iconst_1
goto 141
StackMap locals:
StackMap stack:
140: iconst_0
StackMap locals:
StackMap stack: int
141: istore 8
142: iload 10
ifeq 143
aconst_null
goto 144
StackMap locals:
StackMap stack:
143: aload 21
StackMap locals:
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
144: astore 24
145: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
146: iload 8
ifeq 148
147: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
148: 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 int int int int org.glassfish.grizzly.Buffer int org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler int int int int int int org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.Buffer top org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack:
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:
StackMap stack:
aload 24
areturn
end local 22 end local 21 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 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 int int
StackMap stack: java.lang.Throwable
astore 23
152: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "sendTrailers="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
153: iload 8
ifeq 155
154: aload 0
aload 3
aload 6
checkcast org.glassfish.grizzly.http.HttpTrailer
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
155: 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 int int top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
iload 9
ifeq 157
156: 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
157: StackMap locals:
StackMap stack:
aload 23
athrow
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 158 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 158 1 httpPacket Lorg/glassfish/grizzly/http/HttpPacket;
0 158 2 ctx Lorg/glassfish/grizzly/filterchain/FilterChainContext;
0 158 3 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
0 158 4 messageCloner Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;
1 158 5 httpHeader Lorg/glassfish/grizzly/http/HttpHeader;
4 158 6 httpContent Lorg/glassfish/grizzly/http/HttpContent;
5 158 7 headerFrames Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;
6 158 8 sendTrailers Z
7 158 9 lockedByMe Z
10 151 10 isLast Z
11 151 11 isTrailer Z
17 61 12 dontSendPayload Z
21 61 13 logging Z
24 61 14 capture Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
30 33 15 http2Frame Lorg/glassfish/grizzly/http2/frames/Http2Frame;
37 49 15 response Lorg/glassfish/grizzly/http/HttpResponsePacket;
72 151 12 data Lorg/glassfish/grizzly/Buffer;
73 151 13 dataSize I
75 151 14 flushCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
78 151 15 isZeroSizeData Z
81 151 16 spaceToReserve I
82 151 17 isDataCloned Z
83 151 18 spaceReserved I
92 112 19 record Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
113 151 19 remaining I
114 151 20 fitWindowLen I
117 118 21 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
125 151 21 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
122 126 22 dataChunkToStore Lorg/glassfish/grizzly/Buffer;
129 151 22 dataToSend Lorg/glassfish/grizzly/Buffer;
Exception table:
from to target type
7 43 151 any
49 55 151 any
61 64 151 any
70 97 151 any
103 106 151 any
112 145 151 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;>;)Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
MethodParameters:
Name Flags
httpPacket final
ctx final
completionHandler final
messageCloner final
private org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord createOutputQueueRecord(org.glassfish.grizzly.Buffer, org.glassfish.grizzly.http.HttpContent, org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler, boolean, boolean);
descriptor: (Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http/HttpContent;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, 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.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
invokestatic org.glassfish.grizzly.http2.Source.factory:(Lorg/glassfish/grizzly/http2/Http2Stream;)Lorg/glassfish/grizzly/http2/Source$SourceFactory;
aload 1
invokevirtual org.glassfish.grizzly.http2.Source$SourceFactory.createBufferSource:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http2/Source;
astore 6
start local 6 1: aload 2
instanceof org.glassfish.grizzly.http.HttpTrailer
ifeq 3
2: new org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
dup
aload 6
aload 3
aload 2
checkcast org.glassfish.grizzly.http.HttpTrailer
iconst_0
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.<init>:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;Z)V
areturn
3: StackMap locals: org.glassfish.grizzly.http2.Source
StackMap stack:
new org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
dup
aload 6
aload 3
iload 4
iload 5
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.<init>:(Lorg/glassfish/grizzly/http2/Source;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;ZZ)V
areturn
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 4 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 4 1 data Lorg/glassfish/grizzly/Buffer;
0 4 2 httpContent Lorg/glassfish/grizzly/http/HttpContent;
0 4 3 flushCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
0 4 4 isLast Z
0 4 5 isZeroSizeData Z
1 4 6 bufferSource Lorg/glassfish/grizzly/http2/Source;
MethodParameters:
Name Flags
data final
httpContent final
flushCompletionHandler final
isLast
isZeroSizeData final
private org.glassfish.grizzly.Buffer prepareDataToSend(boolean, boolean, org.glassfish.grizzly.Buffer, boolean);
descriptor: (ZZLorg/glassfish/grizzly/Buffer;Z)Lorg/glassfish/grizzly/Buffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 3
iload 2
ifeq 7
3: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 5
start local 5 4: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 5
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
5: aload 0
iload 5
iload 4
iload 1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
6: aload 3
areturn
end local 5 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 8 1 isRecordNull Z
0 8 2 isLast Z
0 8 3 data Lorg/glassfish/grizzly/Buffer;
0 8 4 isZeroSizeData Z
4 7 5 dataChunkToSendSize I
MethodParameters:
Name Flags
isRecordNull final
isLast final
data final
isZeroSizeData 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 13
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 9
4: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersQueue:Lorg/glassfish/grizzly/http2/BundleQueue;
ifnonnull 6
5: aload 0
new org.glassfish.grizzly.http2.BundleQueue
dup
invokespecial org.glassfish.grizzly.http2.BundleQueue.<init>:()V
putfield org.glassfish.grizzly.http2.DefaultOutputSink.flushHandlersQueue:Lorg/glassfish/grizzly/http2/BundleQueue;
6: 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
7: aload 2
monitorexit
8: return
end local 3 9: StackMap locals:
StackMap stack:
aload 2
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 2
monitorexit
12: athrow
13: 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
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 15 1 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/http2/Http2Stream;>;
3 9 3 counterNow I
Exception table:
from to target type
2 8 11 any
9 10 11 any
11 12 11 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.CompletionHandler<org.glassfish.grizzly.WriteResult>, org.glassfish.grizzly.asyncqueue.MessageCloner<org.glassfish.grizzly.Buffer>, );
descriptor: (Ljava/util/List;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler
dup
aload 0
aload 2
invokespecial org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler.<init>:(Lorg/glassfish/grizzly/http2/DefaultOutputSink;Lorg/glassfish/grizzly/CompletionHandler;)V
astore 5
start local 5 1: aload 0
aload 1
aconst_null
aload 5
aload 3
iload 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
2: 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 3 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 3 1 headerFrames Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;
0 3 2 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
0 3 3 messageCloner Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;
0 3 4 sendFIN Z
1 3 5 flushCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
Signature: (Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;Z)V
MethodParameters:
Name Flags
headerFrames final
completionHandler final
messageCloner final
sendFIN final
private void flushToConnectionOutputSink(org.glassfish.grizzly.Buffer, org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler, boolean);
descriptor: (Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
aload 1
aload 2
aconst_null
iload 3
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
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 2 1 data Lorg/glassfish/grizzly/Buffer;
0 2 2 flushCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
0 2 3 sendFIN Z
MethodParameters:
Name Flags
data final
flushCompletionHandler final
sendFIN 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;
1: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.stream:Lorg/glassfish/grizzly/http2/Http2Stream;
aload 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 sendFIN 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
sendFIN 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 9
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 9
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 9
8: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.writeEmptyFin:()V
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 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=6, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.isTerminated:()Z
ifne 3
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
getstatic org.glassfish.grizzly.memory.Buffers.EMPTY_BUFFER:Lorg/glassfish/grizzly/Buffer;
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
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Z)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 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=4, locals=10, 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 37
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
ifne 3
2: goto 37
3: StackMap locals:
StackMap stack:
aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.chunkedCompletionHandler:Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
astore 2
start local 2 4: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.trailer:Lorg/glassfish/grizzly/http/HttpTrailer;
astore 3
start local 3 5: aload 3
ifnull 8
6: aload 0
aload 2
aload 3
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.sendTrailers:(Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
7: return
8: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.http.HttpTrailer
StackMap stack:
aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isLast:Z
istore 4
start local 4 9: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.isZeroSizeData:Z
istore 5
start local 5 10: aload 1
getfield org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord.resource:Lorg/glassfish/grizzly/http2/Source;
astore 6
start local 6 11: aload 0
aload 6
invokevirtual org.glassfish.grizzly.http2.Source.remaining:()I
i2l
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.checkOutputWindow:(J)I
istore 7
start local 7 12: aload 6
iload 7
invokevirtual org.glassfish.grizzly.http2.Source.read:(I)Lorg/glassfish/grizzly/Buffer;
astore 8
start local 8 13: aload 6
invokevirtual org.glassfish.grizzly.http2.Source.hasRemaining:()Z
ifeq 18
14: aload 1
aload 6
aload 2
iload 4
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 4
17: goto 20
18: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.http.HttpTrailer 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 8
ifnull 28
aload 8
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 21
iload 4
ifeq 28
21: StackMap locals:
StackMap stack:
aload 8
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 9
start local 9 22: aload 0
aload 8
aload 2
iload 4
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;Z)V
23: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.availStreamWindowSize:Ljava/util/concurrent/atomic/AtomicInteger;
iload 9
ineg
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
24: aload 0
iload 9
iload 5
aload 1
ifnonnull 25
iconst_1
goto 26
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.http.HttpTrailer int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int
25: iconst_0
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.http.HttpTrailer int int org.glassfish.grizzly.http2.Source int org.glassfish.grizzly.Buffer int
StackMap stack: org.glassfish.grizzly.http2.DefaultOutputSink int int int
26: invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
end local 9 27: goto 36
StackMap locals:
StackMap stack:
28: iload 5
ifeq 31
aload 1
ifnonnull 31
29: aload 0
iconst_0
iconst_1
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.releaseWriteQueueSpace:(IZZ)V
30: goto 36
StackMap locals:
StackMap stack:
31: aload 8
ifnull 36
aload 8
invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
ifne 36
32: aload 1
ifnull 37
33: 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
34: 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
35: goto 37
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 36: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
StackMap stack:
aload 1
ifnonnull 0
37: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 38 1 outputQueueRecord Lorg/glassfish/grizzly/http2/DefaultOutputSink$OutputQueueRecord;
4 36 2 chunkedCompletionHandler Lorg/glassfish/grizzly/http2/DefaultOutputSink$FlushCompletionHandler;
5 36 3 currentTrailer Lorg/glassfish/grizzly/http/HttpTrailer;
9 36 4 isLast Z
10 36 5 isZeroSizeData Z
11 36 6 currentResource Lorg/glassfish/grizzly/http2/Source;
12 36 7 fitWindowLen I
13 36 8 dataChunkToSend Lorg/glassfish/grizzly/Buffer;
22 27 9 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.http.HttpTrailer);
descriptor: (Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/http/HttpTrailer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 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 3
start local 3 2: iload 3
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 4
start local 4 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 2
invokevirtual org.glassfish.grizzly.http.HttpTrailer.getHeaders:()Lorg/glassfish/grizzly/http/util/MimeHeaders;
aload 4
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 5
start local 5 10: iload 3
ifeq 17
11: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 16
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.http.HttpTrailer int java.util.Map java.util.List top java.util.Iterator
StackMap stack:
12: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http2.frames.Http2Frame
astore 6
start local 6 13: aload 6
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 6
checkcast org.glassfish.grizzly.http2.frames.HeadersFrame
aload 4
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 6 16: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
17: StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.http.HttpTrailer int java.util.Map java.util.List
StackMap stack:
aload 0
aload 5
aload 1
aconst_null
iconst_1
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.flushToConnectionOutputSink:(Ljava/util/List;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
18: aload 0
getfield org.glassfish.grizzly.http2.DefaultOutputSink.unflushedWritesCounter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
end local 5 end local 4 end local 3 19: goto 30
StackMap locals: org.glassfish.grizzly.http2.DefaultOutputSink org.glassfish.grizzly.CompletionHandler org.glassfish.grizzly.http.HttpTrailer
StackMap stack: java.io.IOException
20: astore 3
start local 3 21: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
ldc "Error sending trailers."
aload 3
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 22: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.close:()V
23: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
ldc "Sending trailers finished, unlocking the deflater lock ..."
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
24: 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
goto 33
25: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
26: aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.close:()V
27: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
ldc "Sending trailers finished, unlocking the deflater lock ..."
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
28: 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
29: aload 8
athrow
30: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.glassfish.grizzly.http2.DefaultOutputSink.close:()V
31: getstatic org.glassfish.grizzly.http2.DefaultOutputSink.LOGGER:Ljava/util/logging/Logger;
ldc "Sending trailers finished, unlocking the deflater lock ..."
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
32: 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
33: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/glassfish/grizzly/http2/DefaultOutputSink;
0 34 1 completionHandler Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
0 34 2 httpContent Lorg/glassfish/grizzly/http/HttpTrailer;
2 19 3 logging Z
5 19 4 capture Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
10 19 5 trailerFrames Ljava/util/List<Lorg/glassfish/grizzly/http2/frames/Http2Frame;>;
13 16 6 http2Frame Lorg/glassfish/grizzly/http2/frames/Http2Frame;
21 22 3 ex Ljava/io/IOException;
Exception table:
from to target type
1 19 20 Class java.io.IOException
1 22 25 any
Signature: (Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;Lorg/glassfish/grizzly/http/HttpTrailer;)V
MethodParameters:
Name Flags
completionHandler final
httpContent final
private static java.lang.String lambda$0(boolean);
descriptor: (Z)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.StringBuilder
dup
ldc "Header not committed yet; dontSendPayload="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.String lambda$1(boolean);
descriptor: (Z)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.StringBuilder
dup
ldc "Nothing to send; dontSendPayload="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.String lambda$2(int, int);
descriptor: (II)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.StringBuilder
dup
ldc "Bytes reserved: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", was requested: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.String lambda$3(int, int);
descriptor: (II)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.StringBuilder
dup
ldc "Remaining: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", fitWindowLen: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "DefaultOutputSink.java"
NestMembers:
org.glassfish.grizzly.http2.DefaultOutputSink$1 org.glassfish.grizzly.http2.DefaultOutputSink$FlushCompletionHandler org.glassfish.grizzly.http2.DefaultOutputSink$OutputQueueRecord
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
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