class org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler implements org.glassfish.grizzly.WriteHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler
super_class: java.lang.Object
{
private final org.glassfish.grizzly.http.server.Response response;
descriptor: Lorg/glassfish/grizzly/http/server/Response;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.glassfish.grizzly.http.io.NIOOutputStream outputStream;
descriptor: Lorg/glassfish/grizzly/http/io/NIOOutputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.InputStream inputStream;
descriptor: Ljava/io/InputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.glassfish.grizzly.memory.MemoryManager mm;
descriptor: Lorg/glassfish/grizzly/memory/MemoryManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int chunkSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(org.glassfish.grizzly.http.server.Response, org.glassfish.grizzly.http.io.NIOOutputStream, java.io.InputStream, int);
descriptor: (Lorg/glassfish/grizzly/http/server/Response;Lorg/glassfish/grizzly/http/io/NIOOutputStream;Ljava/io/InputStream;I)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
2: aload 0
aload 2
putfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.outputStream:Lorg/glassfish/grizzly/http/io/NIOOutputStream;
3: aload 0
aload 3
putfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.inputStream:Ljava/io/InputStream;
4: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.Response.getRequest:()Lorg/glassfish/grizzly/http/server/Request;
invokevirtual org.glassfish.grizzly.http.server.Request.getContext:()Lorg/glassfish/grizzly/filterchain/FilterChainContext;
invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMemoryManager:()Lorg/glassfish/grizzly/memory/MemoryManager;
putfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.mm:Lorg/glassfish/grizzly/memory/MemoryManager;
5: aload 0
iload 4
putfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.chunkSize:I
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler$NonBlockingDownloadHandler;
0 7 1 response Lorg/glassfish/grizzly/http/server/Response;
0 7 2 outputStream Lorg/glassfish/grizzly/http/io/NIOOutputStream;
0 7 3 inputStream Ljava/io/InputStream;
0 7 4 chunkSize I
MethodParameters:
Name Flags
response final
outputStream final
inputStream final
chunkSize final
public void onWritePossible();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic org.glassfish.grizzly.http.server.CLStaticHttpHandler.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "[onWritePossible]"
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
1: aload 0
invokevirtual org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.sendChunk:()Z
istore 1
start local 1 2: iload 1
ifeq 4
3: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.outputStream:Lorg/glassfish/grizzly/http/io/NIOOutputStream;
aload 0
invokevirtual org.glassfish.grizzly.http.io.NIOOutputStream.notifyCanWrite:(Lorg/glassfish/grizzly/WriteHandler;)V
4: StackMap locals: int
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler$NonBlockingDownloadHandler;
2 5 1 isWriteMore Z
Exceptions:
throws java.lang.Exception
public void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.glassfish.grizzly.http.server.CLStaticHttpHandler.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "[onError] "
aload 1
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
1: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
sipush 500
aload 1
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual org.glassfish.grizzly.http.server.Response.setStatus:(ILjava/lang/String;)V
2: aload 0
iconst_1
invokevirtual org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.complete:(Z)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler$NonBlockingDownloadHandler;
0 4 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private boolean sendChunk();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.mm:Lorg/glassfish/grizzly/memory/MemoryManager;
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.chunkSize:I
invokeinterface org.glassfish.grizzly.memory.MemoryManager.willAllocateDirect:(I)Z
ifne 32
2: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.mm:Lorg/glassfish/grizzly/memory/MemoryManager;
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.chunkSize:I
invokeinterface org.glassfish.grizzly.memory.MemoryManager.allocate:(I)Lorg/glassfish/grizzly/Buffer;
astore 1
3: aload 1
invokeinterface org.glassfish.grizzly.Buffer.isComposite:()Z
ifne 6
4: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.inputStream:Ljava/io/InputStream;
aload 1
invokeinterface org.glassfish.grizzly.Buffer.array:()[B
aload 1
invokeinterface org.glassfish.grizzly.Buffer.position:()I
aload 1
invokeinterface org.glassfish.grizzly.Buffer.arrayOffset:()I
iadd
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.chunkSize:I
invokevirtual java.io.InputStream.read:([BII)I
istore 2
start local 2 5: goto 26
end local 2 6: StackMap locals: org.glassfish.grizzly.Buffer
StackMap stack:
aload 1
invokeinterface org.glassfish.grizzly.Buffer.toBufferArray:()Lorg/glassfish/grizzly/memory/BufferArray;
astore 3
start local 3 7: aload 3
invokevirtual org.glassfish.grizzly.memory.BufferArray.size:()I
istore 4
start local 4 8: aload 3
invokevirtual org.glassfish.grizzly.memory.BufferArray.getArray:()[Ljava/lang/Object;
checkcast org.glassfish.grizzly.Buffer[]
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: iconst_0
istore 7
start local 7 11: goto 20
12: StackMap locals: org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler org.glassfish.grizzly.Buffer top org.glassfish.grizzly.memory.BufferArray int org.glassfish.grizzly.Buffer[] int int
StackMap stack:
aload 5
iload 7
aaload
astore 8
start local 8 13: aload 8
invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
istore 9
start local 9 14: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.inputStream:Ljava/io/InputStream;
aload 8
invokeinterface org.glassfish.grizzly.Buffer.array:()[B
aload 8
invokeinterface org.glassfish.grizzly.Buffer.position:()I
aload 8
invokeinterface org.glassfish.grizzly.Buffer.arrayOffset:()I
iadd
iload 9
invokevirtual java.io.InputStream.read:([BII)I
istore 10
start local 10 15: iload 10
ifle 17
16: iload 6
iload 10
iadd
istore 6
17: StackMap locals: org.glassfish.grizzly.Buffer int int
StackMap stack:
iload 10
iload 9
if_icmpge 19
18: goto 21
end local 10 end local 9 end local 8 19: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
iload 4
if_icmplt 12
end local 7 21: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.glassfish.grizzly.memory.BufferArray.restore:()V
22: aload 3
invokevirtual org.glassfish.grizzly.memory.BufferArray.recycle:()V
23: iload 6
ifle 24
iload 6
goto 25
StackMap locals:
StackMap stack:
24: iconst_m1
StackMap locals:
StackMap stack: int
25: istore 2
end local 6 end local 5 end local 4 end local 3 start local 2 26: StackMap locals: org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler org.glassfish.grizzly.Buffer int
StackMap stack:
iload 2
ifle 29
27: aload 1
aload 1
invokeinterface org.glassfish.grizzly.Buffer.position:()I
iload 2
iadd
invokeinterface org.glassfish.grizzly.Buffer.position:(I)Lorg/glassfish/grizzly/Buffer;
pop
28: goto 37
29: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
30: aconst_null
astore 1
end local 2 31: goto 37
32: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.chunkSize:I
newarray 8
astore 2
start local 2 33: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.inputStream:Ljava/io/InputStream;
aload 2
invokevirtual java.io.InputStream.read:([B)I
istore 3
start local 3 34: iload 3
ifle 37
35: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.mm:Lorg/glassfish/grizzly/memory/MemoryManager;
iload 3
invokeinterface org.glassfish.grizzly.memory.MemoryManager.allocate:(I)Lorg/glassfish/grizzly/Buffer;
astore 1
36: aload 1
aload 2
invokeinterface org.glassfish.grizzly.Buffer.put:([B)Lorg/glassfish/grizzly/Buffer;
pop
end local 3 end local 2 37: StackMap locals:
StackMap stack:
aload 1
ifnonnull 40
38: aload 0
iconst_0
invokevirtual org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.complete:(Z)V
39: iconst_0
ireturn
40: StackMap locals:
StackMap stack:
aload 1
iconst_1
invokeinterface org.glassfish.grizzly.Buffer.allowBufferDispose:(Z)V
41: aload 1
invokeinterface org.glassfish.grizzly.Buffer.trim:()V
42: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.outputStream:Lorg/glassfish/grizzly/http/io/NIOOutputStream;
aload 1
invokevirtual org.glassfish.grizzly.http.io.NIOOutputStream.write:(Lorg/glassfish/grizzly/Buffer;)V
43: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler$NonBlockingDownloadHandler;
1 44 1 buffer Lorg/glassfish/grizzly/Buffer;
5 6 2 len I
26 31 2 len I
7 26 3 bufferArray Lorg/glassfish/grizzly/memory/BufferArray;
8 26 4 size I
9 26 5 buffers [Lorg/glassfish/grizzly/Buffer;
10 26 6 lenCounter I
11 21 7 i I
13 19 8 subBuffer Lorg/glassfish/grizzly/Buffer;
14 19 9 subBufferLen I
15 19 10 justReadLen I
33 37 2 buf [B
34 37 3 len I
Exceptions:
throws java.io.IOException
private void complete(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.inputStream:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
1: goto 5
StackMap locals:
StackMap stack: java.io.IOException
2: astore 2
start local 2 3: iload 1
ifne 5
4: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
sipush 500
aload 2
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual org.glassfish.grizzly.http.server.Response.setStatus:(ILjava/lang/String;)V
end local 2 5: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.outputStream:Lorg/glassfish/grizzly/http/io/NIOOutputStream;
invokevirtual org.glassfish.grizzly.http.io.NIOOutputStream.close:()V
6: goto 10
StackMap locals:
StackMap stack: java.io.IOException
7: astore 2
start local 2 8: iload 1
ifne 10
9: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
sipush 500
aload 2
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual org.glassfish.grizzly.http.server.Response.setStatus:(ILjava/lang/String;)V
end local 2 10: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
invokevirtual org.glassfish.grizzly.http.server.Response.isSuspended:()Z
ifeq 13
11: aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
invokevirtual org.glassfish.grizzly.http.server.Response.resume:()V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler.response:Lorg/glassfish/grizzly/http/server/Response;
invokevirtual org.glassfish.grizzly.http.server.Response.finish:()V
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler$NonBlockingDownloadHandler;
0 15 1 isError Z
3 5 2 e Ljava/io/IOException;
8 10 2 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
5 6 7 Class java.io.IOException
MethodParameters:
Name Flags
isError final
}
SourceFile: "CLStaticHttpHandler.java"
NestHost: org.glassfish.grizzly.http.server.CLStaticHttpHandler
InnerClasses:
private NonBlockingDownloadHandler = org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler of org.glassfish.grizzly.http.server.CLStaticHttpHandler