class sun.net.httpserver.ChunkedOutputStream extends java.io.FilterOutputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.net.httpserver.ChunkedOutputStream
super_class: java.io.FilterOutputStream
{
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static final int CHUNK_SIZE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4096
static final int OFFSET;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
private int pos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int count;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] buf;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
sun.net.httpserver.ExchangeImpl t;
descriptor: Lsun/net/httpserver/ExchangeImpl;
flags: (0x0000)
void <init>(sun.net.httpserver.ExchangeImpl, java.io.OutputStream);
descriptor: (Lsun/net/httpserver/ExchangeImpl;Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokespecial java.io.FilterOutputStream.<init>:(Ljava/io/OutputStream;)V
1: aload 0
iconst_0
putfield sun.net.httpserver.ChunkedOutputStream.closed:Z
2: aload 0
bipush 6
putfield sun.net.httpserver.ChunkedOutputStream.pos:I
3: aload 0
iconst_0
putfield sun.net.httpserver.ChunkedOutputStream.count:I
4: aload 0
sipush 4104
newarray 8
putfield sun.net.httpserver.ChunkedOutputStream.buf:[B
5: aload 0
aload 1
putfield sun.net.httpserver.ChunkedOutputStream.t:Lsun/net/httpserver/ExchangeImpl;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/net/httpserver/ChunkedOutputStream;
0 7 1 t Lsun/net/httpserver/ExchangeImpl;
0 7 2 src Ljava/io/OutputStream;
MethodParameters:
Name Flags
t
src
public void write(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.closed:Z
ifeq 2
1: new sun.net.httpserver.StreamClosedException
dup
invokespecial sun.net.httpserver.StreamClosedException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
aload 0
dup
getfield sun.net.httpserver.ChunkedOutputStream.pos:I
dup_x1
iconst_1
iadd
putfield sun.net.httpserver.ChunkedOutputStream.pos:I
iload 1
i2b
bastore
3: aload 0
dup
getfield sun.net.httpserver.ChunkedOutputStream.count:I
iconst_1
iadd
putfield sun.net.httpserver.ChunkedOutputStream.count:I
4: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
sipush 4096
if_icmpne 6
5: aload 0
invokevirtual sun.net.httpserver.ChunkedOutputStream.writeChunk:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/net/httpserver/ChunkedOutputStream;
0 7 1 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
public void write(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.closed:Z
ifeq 2
1: new sun.net.httpserver.StreamClosedException
dup
invokespecial sun.net.httpserver.StreamClosedException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
sipush 4096
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
isub
istore 4
start local 4 3: iload 3
iload 4
if_icmple 17
4: aload 1
iload 2
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.pos:I
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 0
sipush 4096
putfield sun.net.httpserver.ChunkedOutputStream.count:I
6: aload 0
invokevirtual sun.net.httpserver.ChunkedOutputStream.writeChunk:()V
7: iload 3
iload 4
isub
istore 3
8: iload 2
iload 4
iadd
istore 2
9: goto 15
10: StackMap locals: int
StackMap stack:
aload 1
iload 2
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
bipush 6
sipush 4096
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: iinc 3 -4096
12: iinc 2 4096
13: aload 0
sipush 4096
putfield sun.net.httpserver.ChunkedOutputStream.count:I
14: aload 0
invokevirtual sun.net.httpserver.ChunkedOutputStream.writeChunk:()V
15: StackMap locals:
StackMap stack:
iload 3
sipush 4096
if_icmpgt 10
16: aload 0
bipush 6
putfield sun.net.httpserver.ChunkedOutputStream.pos:I
17: StackMap locals:
StackMap stack:
iload 3
ifle 21
18: aload 1
iload 2
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.pos:I
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
19: aload 0
dup
getfield sun.net.httpserver.ChunkedOutputStream.count:I
iload 3
iadd
putfield sun.net.httpserver.ChunkedOutputStream.count:I
20: aload 0
dup
getfield sun.net.httpserver.ChunkedOutputStream.pos:I
iload 3
iadd
putfield sun.net.httpserver.ChunkedOutputStream.pos:I
21: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/net/httpserver/ChunkedOutputStream;
0 22 1 b [B
0 22 2 off I
0 22 3 len I
3 22 4 remain I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
private void writeChunk();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
astore 1
start local 1 1: aload 1
arraylength
istore 2
start local 2 2: iconst_4
iload 2
isub
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 7
5: StackMap locals: sun.net.httpserver.ChunkedOutputStream char[] int int int
StackMap stack:
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
iload 3
iload 4
iadd
aload 1
iload 4
caload
i2b
bastore
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 2
if_icmplt 5
8: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
iload 3
iload 4
iinc 4 1
iadd
bipush 13
bastore
9: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
iload 3
iload 4
iinc 4 1
iadd
bipush 10
bastore
10: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
iload 3
iload 4
iinc 4 1
iadd
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
iadd
bipush 13
bastore
11: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
iload 3
iload 4
iinc 4 1
iadd
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
iadd
bipush 10
bastore
12: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.out:Ljava/io/OutputStream;
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.buf:[B
iload 3
iload 4
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
iadd
invokevirtual java.io.OutputStream.write:([BII)V
13: aload 0
iconst_0
putfield sun.net.httpserver.ChunkedOutputStream.count:I
14: aload 0
bipush 6
putfield sun.net.httpserver.ChunkedOutputStream.pos:I
15: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/net/httpserver/ChunkedOutputStream;
1 16 1 c [C
2 16 2 clen I
3 16 3 startByte I
4 16 4 i I
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.closed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.net.httpserver.ChunkedOutputStream.flush:()V
3: aload 0
invokevirtual sun.net.httpserver.ChunkedOutputStream.writeChunk:()V
4: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.out:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
5: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.t:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getOriginalInputStream:()Lsun/net/httpserver/LeftOverInputStream;
astore 1
start local 1 6: aload 1
invokevirtual sun.net.httpserver.LeftOverInputStream.isClosed:()Z
ifne 14
7: aload 1
invokevirtual sun.net.httpserver.LeftOverInputStream.close:()V
end local 1 8: goto 14
StackMap locals:
StackMap stack: java.io.IOException
9: pop
10: aload 0
iconst_1
putfield sun.net.httpserver.ChunkedOutputStream.closed:Z
goto 15
11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
12: aload 0
iconst_1
putfield sun.net.httpserver.ChunkedOutputStream.closed:Z
13: aload 2
athrow
14: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.net.httpserver.ChunkedOutputStream.closed:Z
15: StackMap locals:
StackMap stack:
new sun.net.httpserver.WriteFinishedEvent
dup
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.t:Lsun/net/httpserver/ExchangeImpl;
invokespecial sun.net.httpserver.WriteFinishedEvent.<init>:(Lsun/net/httpserver/ExchangeImpl;)V
astore 1
start local 1 16: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.t:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getHttpContext:()Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpContextImpl.getServerImpl:()Lsun/net/httpserver/ServerImpl;
aload 1
invokevirtual sun.net.httpserver.ServerImpl.addEvent:(Lsun/net/httpserver/Event;)V
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/net/httpserver/ChunkedOutputStream;
6 8 1 is Lsun/net/httpserver/LeftOverInputStream;
16 18 1 e Lsun/net/httpserver/WriteFinishedEvent;
Exception table:
from to target type
3 8 9 Class java.io.IOException
3 10 11 any
Exceptions:
throws java.io.IOException
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.net.httpserver.ChunkedOutputStream.closed:Z
ifeq 2
1: new sun.net.httpserver.StreamClosedException
dup
invokespecial sun.net.httpserver.StreamClosedException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.count:I
ifle 4
3: aload 0
invokevirtual sun.net.httpserver.ChunkedOutputStream.writeChunk:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.httpserver.ChunkedOutputStream.out:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/net/httpserver/ChunkedOutputStream;
Exceptions:
throws java.io.IOException
}
SourceFile: "ChunkedOutputStream.java"