public class org.apache.catalina.connector.OutputBuffer extends java.io.Writer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.connector.OutputBuffer
super_class: java.io.Writer
{
private static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final int DEFAULT_BUFFER_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private final java.util.Map<java.nio.charset.Charset, org.apache.tomcat.util.buf.C2BConverter> encoders;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/nio/charset/Charset;Lorg/apache/tomcat/util/buf/C2BConverter;>;
private final int defaultBufferSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.ByteBuffer bb;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private final java.nio.CharBuffer cb;
descriptor: Ljava/nio/CharBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean initial;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long bytesWritten;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long charsWritten;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private volatile boolean closed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean doFlush;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
protected org.apache.tomcat.util.buf.C2BConverter conv;
descriptor: Lorg/apache/tomcat/util/buf/C2BConverter;
flags: (0x0004) ACC_PROTECTED
private org.apache.coyote.Response coyoteResponse;
descriptor: Lorg/apache/coyote/Response;
flags: (0x0002) ACC_PRIVATE
private volatile boolean suspended;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/catalina/connector/OutputBuffer;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.catalina.connector.OutputBuffer.sm:Lorg/apache/tomcat/util/res/StringManager;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.io.Writer.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.apache.catalina.connector.OutputBuffer.encoders:Ljava/util/Map;
2: aload 0
iconst_1
putfield org.apache.catalina.connector.OutputBuffer.initial:Z
3: aload 0
lconst_0
putfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
4: aload 0
lconst_0
putfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
5: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.closed:Z
6: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
7: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.suspended:Z
8: aload 0
iload 1
putfield org.apache.catalina.connector.OutputBuffer.defaultBufferSize:I
9: aload 0
iload 1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
10: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
11: aload 0
iload 1
invokestatic java.nio.CharBuffer.allocate:(I)Ljava/nio/CharBuffer;
putfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
12: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 14 1 size I
MethodParameters:
Name Flags
size
public void setResponse(org.apache.coyote.Response);
descriptor: (Lorg/apache/coyote/Response;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 2 1 coyoteResponse Lorg/apache/coyote/Response;
MethodParameters:
Name Flags
coyoteResponse
public boolean isSuspended();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/connector/OutputBuffer;
public void setSuspended(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.connector.OutputBuffer.suspended:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 2 1 suspended Z
MethodParameters:
Name Flags
suspended
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.apache.catalina.connector.OutputBuffer.closed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/connector/OutputBuffer;
public void recycle();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.catalina.connector.OutputBuffer.initial:Z
1: aload 0
lconst_0
putfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
2: aload 0
lconst_0
putfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
3: aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
bipush 16
aload 0
getfield org.apache.catalina.connector.OutputBuffer.defaultBufferSize:I
imul
if_icmple 5
4: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.defaultBufferSize:I
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
6: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
7: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.closed:Z
8: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.suspended:Z
9: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
10: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
ifnull 13
11: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
invokevirtual org.apache.tomcat.util.buf.C2BConverter.recycle:()V
12: aload 0
aconst_null
putfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/catalina/connector/OutputBuffer;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.closed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.remaining:()I
ifle 6
5: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushCharBuffer:()V
6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.isCommitted:()Z
ifne 10
aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getContentLengthLong:()J
ldc -1
lcmp
ifne 10
7: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.method:()Lorg/apache/tomcat/util/buf/MessageBytes;
ldc "HEAD"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.equals:(Ljava/lang/String;)Z
ifne 10
8: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.isCommitted:()Z
ifne 10
9: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
invokevirtual org.apache.coyote.Response.setContentLength:(J)V
10: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getStatus:()I
bipush 101
if_icmpne 13
11: aload 0
iconst_1
invokevirtual org.apache.catalina.connector.OutputBuffer.doFlush:(Z)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual org.apache.catalina.connector.OutputBuffer.doFlush:(Z)V
14: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.catalina.connector.OutputBuffer.closed:Z
15: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getRequest:()Lorg/apache/coyote/Request;
iconst_1
invokevirtual org.apache.coyote.Request.getNote:(I)Ljava/lang/Object;
checkcast org.apache.catalina.connector.Request
astore 1
start local 1 16: aload 1
getfield org.apache.catalina.connector.Request.inputBuffer:Lorg/apache/catalina/connector/InputBuffer;
invokevirtual org.apache.catalina.connector.InputBuffer.close:()V
17: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
getstatic org.apache.coyote.ActionCode.CLOSE:Lorg/apache/coyote/ActionCode;
aconst_null
invokevirtual org.apache.coyote.Response.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/catalina/connector/OutputBuffer;
16 19 1 req Lorg/apache/catalina/connector/Request;
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
iconst_1
invokevirtual org.apache.catalina.connector.OutputBuffer.doFlush:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
Exceptions:
throws java.io.IOException
protected void doFlush(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
3: aload 0
getfield org.apache.catalina.connector.OutputBuffer.initial:Z
ifeq 6
4: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.sendHeaders:()V
5: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.initial:Z
6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.remaining:()I
ifle 8
7: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushCharBuffer:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifle 14
9: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
10: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 2
12: aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
13: aload 2
athrow
14: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
15: iload 1
ifeq 19
16: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
getstatic org.apache.coyote.ActionCode.CLIENT_FLUSH:Lorg/apache/coyote/ActionCode;
aconst_null
invokevirtual org.apache.coyote.Response.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
17: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.isExceptionPresent:()Z
ifeq 19
18: new org.apache.catalina.connector.ClientAbortException
dup
aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getErrorException:()Ljava/lang/Exception;
invokespecial org.apache.catalina.connector.ClientAbortException.<init>:(Ljava/lang/Throwable;)V
athrow
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 20 1 realFlush Z
Exception table:
from to target type
2 11 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
realFlush
public void realWriteBytes(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.closed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
ifnonnull 4
3: return
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifle 12
5: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
aload 1
invokevirtual org.apache.coyote.Response.doWrite:(Ljava/nio/ByteBuffer;)V
6: goto 12
StackMap locals:
StackMap stack: org.apache.coyote.CloseNowException
7: astore 2
start local 2 8: aload 0
iconst_1
putfield org.apache.catalina.connector.OutputBuffer.closed:Z
9: aload 2
athrow
end local 2 10: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 11: new org.apache.catalina.connector.ClientAbortException
dup
aload 2
invokespecial org.apache.catalina.connector.ClientAbortException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 13 1 buf Ljava/nio/ByteBuffer;
8 10 2 e Lorg/apache/coyote/CloseNowException;
11 12 2 e Ljava/io/IOException;
Exception table:
from to target type
5 6 7 Class org.apache.coyote.CloseNowException
5 6 10 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
public void write(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.catalina.connector.OutputBuffer.writeBytes:([BII)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 b [B
0 4 2 off I
0 4 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
public void write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.connector.OutputBuffer.writeBytes:(Ljava/nio/ByteBuffer;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 from Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
private void writeBytes(byte[], int, int);
descriptor: ([BII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.closed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.catalina.connector.OutputBuffer.append:([BII)V
3: aload 0
dup
getfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
iload 3
i2l
ladd
putfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
4: aload 0
getfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
ifeq 6
5: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 7 1 b [B
0 7 2 off I
0 7 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
private void writeBytes(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.closed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.connector.OutputBuffer.append:(Ljava/nio/ByteBuffer;)V
3: aload 0
dup
getfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
putfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
4: aload 0
getfield org.apache.catalina.connector.OutputBuffer.doFlush:Z
ifeq 6
5: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 7 1 from Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
public void writeByte(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 org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.isFull:(Ljava/nio/Buffer;)Z
ifeq 4
3: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
4: StackMap locals:
StackMap stack:
aload 0
iload 1
i2b
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:(BLjava/nio/ByteBuffer;)V
5: aload 0
dup
getfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
lconst_1
ladd
putfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 7 1 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
public void realWriteChars(java.nio.CharBuffer);
descriptor: (Ljava/nio/CharBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: goto 9
1: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
aload 1
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.tomcat.util.buf.C2BConverter.convert:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)V
2: aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 4
3: goto 10
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.CharBuffer.remaining:()I
ifle 7
5: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
6: goto 9
StackMap locals:
StackMap stack:
7: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
invokevirtual org.apache.tomcat.util.buf.C2BConverter.isUndeflow:()Z
ifeq 9
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
iconst_4
isub
if_icmple 9
8: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.CharBuffer.remaining:()I
ifgt 1
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 11 1 from Ljava/nio/CharBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
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 org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.isFull:(Ljava/nio/Buffer;)Z
ifeq 4
3: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushCharBuffer:()V
4: StackMap locals:
StackMap stack:
aload 0
iload 1
i2c
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:(CLjava/nio/CharBuffer;)V
5: aload 0
dup
getfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
lconst_1
ladd
putfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 7 1 c I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
public void write(char[]);
descriptor: ([C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual org.apache.catalina.connector.OutputBuffer.write:([CII)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 c [C
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
public void write(char[], int, int);
descriptor: ([CII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.catalina.connector.OutputBuffer.append:([CII)V
3: aload 0
dup
getfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
iload 3
i2l
ladd
putfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 5 1 c [C
0 5 2 off I
0 5 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
off
len
public void write(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
getstatic org.apache.catalina.connector.OutputBuffer.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "outputBuffer.writeNull"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 2
istore 4
start local 4 5: iload 2
iload 3
iadd
istore 5
start local 5 6: goto 11
7: StackMap locals: int int
StackMap stack:
aload 0
aload 1
iload 4
iload 5
iload 4
isub
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:(Ljava/lang/String;IILjava/nio/CharBuffer;)I
istore 6
start local 6 8: iload 4
iload 6
iadd
istore 4
9: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.isFull:(Ljava/nio/Buffer;)Z
ifeq 11
10: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushCharBuffer:()V
end local 6 11: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmplt 7
12: aload 0
dup
getfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
iload 3
i2l
ladd
putfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
13: 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 14 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 14 1 s Ljava/lang/String;
0 14 2 off I
0 14 3 len I
5 14 4 sOff I
6 14 5 sEnd I
8 11 6 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
off
len
public void write(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.suspended:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: ldc "null"
astore 1
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
invokevirtual org.apache.catalina.connector.OutputBuffer.write:(Ljava/lang/String;II)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 6 1 s Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
public void checkConverter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
ifnull 2
1: return
2: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 3: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
ifnull 5
4: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getCharset:()Ljava/nio/charset/Charset;
astore 1
5: StackMap locals: java.nio.charset.Charset
StackMap stack:
aload 1
ifnonnull 7
6: getstatic org.apache.coyote.Constants.DEFAULT_BODY_CHARSET:Ljava/nio/charset/Charset;
astore 1
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.encoders:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.tomcat.util.buf.C2BConverter
putfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
8: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
ifnonnull 11
9: aload 0
aload 1
invokestatic org.apache.catalina.connector.OutputBuffer.createConverter:(Ljava/nio/charset/Charset;)Lorg/apache/tomcat/util/buf/C2BConverter;
putfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
10: aload 0
getfield org.apache.catalina.connector.OutputBuffer.encoders:Ljava/util/Map;
aload 1
aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/catalina/connector/OutputBuffer;
3 12 1 charset Ljava/nio/charset/Charset;
Exceptions:
throws java.io.IOException
private static org.apache.tomcat.util.buf.C2BConverter createConverter(java.nio.charset.Charset);
descriptor: (Ljava/nio/charset/Charset;)Lorg/apache/tomcat/util/buf/C2BConverter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
ifeq 8
1: new org.apache.catalina.connector.OutputBuffer$PrivilegedCreateConverter
dup
aload 0
invokespecial org.apache.catalina.connector.OutputBuffer$PrivilegedCreateConverter.<init>:(Ljava/nio/charset/Charset;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast org.apache.tomcat.util.buf.C2BConverter
2: areturn
3: StackMap locals:
StackMap stack: java.security.PrivilegedActionException
astore 1
start local 1 4: aload 1
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
astore 2
start local 2 5: aload 2
instanceof java.io.IOException
ifeq 7
6: aload 2
checkcast java.io.IOException
athrow
7: StackMap locals: java.security.PrivilegedActionException java.lang.Exception
StackMap stack:
new java.io.IOException
dup
aload 1
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 8: StackMap locals:
StackMap stack:
new org.apache.tomcat.util.buf.C2BConverter
dup
aload 0
invokespecial org.apache.tomcat.util.buf.C2BConverter.<init>:(Ljava/nio/charset/Charset;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 charset Ljava/nio/charset/Charset;
4 8 1 ex Ljava/security/PrivilegedActionException;
5 8 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.security.PrivilegedActionException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
charset final
public long getContentWritten();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
aload 0
getfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
ladd
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/connector/OutputBuffer;
public boolean isNew();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
lconst_0
lcmp
ifne 1
aload 0
getfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
lconst_0
lcmp
ifne 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/apache/catalina/connector/OutputBuffer;
public void setBufferSize(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmple 3
1: aload 0
iload 1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
2: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 size I
MethodParameters:
Name Flags
size
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.apache.catalina.connector.OutputBuffer.reset:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
public void reset(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
1: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
2: aload 0
lconst_0
putfield org.apache.catalina.connector.OutputBuffer.bytesWritten:J
3: aload 0
lconst_0
putfield org.apache.catalina.connector.OutputBuffer.charsWritten:J
4: iload 1
ifeq 8
5: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
ifnull 7
6: aload 0
getfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
invokevirtual org.apache.tomcat.util.buf.C2BConverter.recycle:()V
7: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.apache.catalina.connector.OutputBuffer.conv:Lorg/apache/tomcat/util/buf/C2BConverter;
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.catalina.connector.OutputBuffer.initial:Z
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 10 1 resetWriterStreamFlags Z
MethodParameters:
Name Flags
resetWriterStreamFlags
public int getBufferSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/connector/OutputBuffer;
public boolean isReady();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.isReady:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/connector/OutputBuffer;
public void setWriteListener(javax.servlet.WriteListener);
descriptor: (Ljavax/servlet/WriteListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
aload 1
invokevirtual org.apache.coyote.Response.setWriteListener:(Ljavax/servlet/WriteListener;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 2 1 listener Ljavax/servlet/WriteListener;
MethodParameters:
Name Flags
listener
public boolean isBlocking();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getWriteListener:()Ljavax/servlet/WriteListener;
ifnonnull 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/apache/catalina/connector/OutputBuffer;
public void checkRegisterForWrite();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.coyoteResponse:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.checkRegisterForWrite:()Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
public void append(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 org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 3
1: aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.catalina.connector.OutputBuffer.appendByteArray:([BII)V
2: goto 9
3: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:([BIILjava/nio/ByteBuffer;)I
istore 4
start local 4 4: iload 3
iload 4
isub
istore 3
5: iload 2
iload 4
iadd
istore 2
6: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.isFull:(Ljava/nio/Buffer;)Z
ifeq 9
7: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
8: aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.catalina.connector.OutputBuffer.appendByteArray:([BII)V
end local 4 9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 10 1 src [B
0 10 2 off I
0 10 3 len I
4 9 4 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
off
len
public void append(char[], int, int);
descriptor: ([CII)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: iload 3
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.capacity:()I
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.limit:()I
isub
if_icmpgt 3
1: aload 0
aload 1
iload 2
iload 3
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:([CIILjava/nio/CharBuffer;)I
pop
2: return
3: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.limit:()I
iadd
iconst_2
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.capacity:()I
imul
if_icmpge 8
4: aload 0
aload 1
iload 2
iload 3
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:([CIILjava/nio/CharBuffer;)I
istore 4
start local 4 5: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushCharBuffer:()V
6: aload 0
aload 1
iload 2
iload 4
iadd
iload 3
iload 4
isub
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:([CIILjava/nio/CharBuffer;)I
pop
end local 4 7: goto 10
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushCharBuffer:()V
9: aload 0
aload 1
iload 2
iload 3
invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.realWriteChars:(Ljava/nio/CharBuffer;)V
10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 11 1 src [C
0 11 2 off I
0 11 3 len I
5 7 4 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
off
len
public void append(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 3
1: aload 0
aload 1
invokevirtual org.apache.catalina.connector.OutputBuffer.appendByteBuffer:(Ljava/nio/ByteBuffer;)V
2: goto 7
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
4: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.isFull:(Ljava/nio/Buffer;)Z
ifeq 7
5: aload 0
invokevirtual org.apache.catalina.connector.OutputBuffer.flushByteBuffer:()V
6: aload 0
aload 1
invokevirtual org.apache.catalina.connector.OutputBuffer.appendByteBuffer:(Ljava/nio/ByteBuffer;)V
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 8 1 from Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
private void appendByteArray(byte[], int, int);
descriptor: ([BII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
istore 4
start local 4 3: goto 7
4: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
iload 4
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.realWriteBytes:(Ljava/nio/ByteBuffer;)V
5: iload 3
iload 4
isub
istore 3
6: iload 2
iload 4
iadd
istore 2
7: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmpge 4
8: iload 3
ifle 10
9: aload 0
aload 1
iload 2
iload 3
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:([BIILjava/nio/ByteBuffer;)I
pop
10: 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 11 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 11 1 src [B
0 11 2 off I
0 11 3 len I
3 11 4 limit I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
off
len
private void appendByteBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
istore 2
start local 2 3: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 3
start local 3 4: goto 9
5: StackMap locals: int int
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 2
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
6: aload 0
aload 1
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.realWriteBytes:(Ljava/nio/ByteBuffer;)V
7: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
8: aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 2
if_icmpge 5
10: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifle 12
11: aload 0
aload 1
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.transfer:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 13 1 from Ljava/nio/ByteBuffer;
3 13 2 limit I
4 13 3 fromLimit I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
private void flushByteBuffer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.realWriteBytes:(Ljava/nio/ByteBuffer;)V
1: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.bb:Ljava/nio/ByteBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/connector/OutputBuffer;
Exceptions:
throws java.io.IOException
private void flushCharBuffer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.slice:()Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.realWriteChars:(Ljava/nio/CharBuffer;)V
1: aload 0
aload 0
getfield org.apache.catalina.connector.OutputBuffer.cb:Ljava/nio/CharBuffer;
invokevirtual org.apache.catalina.connector.OutputBuffer.clear:(Ljava/nio/Buffer;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/connector/OutputBuffer;
Exceptions:
throws java.io.IOException
private void transfer(byte, java.nio.ByteBuffer);
descriptor: (BLjava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.apache.catalina.connector.OutputBuffer.toWriteMode:(Ljava/nio/Buffer;)V
1: aload 2
iload 1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: aload 0
aload 2
invokevirtual org.apache.catalina.connector.OutputBuffer.toReadMode:(Ljava/nio/Buffer;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 b B
0 4 2 to Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
b
to
private void transfer(char, java.nio.CharBuffer);
descriptor: (CLjava/nio/CharBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.apache.catalina.connector.OutputBuffer.toWriteMode:(Ljava/nio/Buffer;)V
1: aload 2
iload 1
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
2: aload 0
aload 2
invokevirtual org.apache.catalina.connector.OutputBuffer.toReadMode:(Ljava/nio/Buffer;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 b C
0 4 2 to Ljava/nio/CharBuffer;
MethodParameters:
Name Flags
b
to
private int transfer(byte[], int, int, java.nio.ByteBuffer);
descriptor: ([BIILjava/nio/ByteBuffer;)I
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 0
aload 4
invokevirtual org.apache.catalina.connector.OutputBuffer.toWriteMode:(Ljava/nio/Buffer;)V
1: iload 3
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 2: iload 5
ifle 4
3: aload 4
aload 1
iload 2
iload 5
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
4: StackMap locals: int
StackMap stack:
aload 0
aload 4
invokevirtual org.apache.catalina.connector.OutputBuffer.toReadMode:(Ljava/nio/Buffer;)V
5: iload 5
ireturn
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/apache/catalina/connector/OutputBuffer;
0 6 1 buf [B
0 6 2 off I
0 6 3 len I
0 6 4 to Ljava/nio/ByteBuffer;
2 6 5 max I
MethodParameters:
Name Flags
buf
off
len
to
private int transfer(char[], int, int, java.nio.CharBuffer);
descriptor: ([CIILjava/nio/CharBuffer;)I
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 0
aload 4
invokevirtual org.apache.catalina.connector.OutputBuffer.toWriteMode:(Ljava/nio/Buffer;)V
1: iload 3
aload 4
invokevirtual java.nio.CharBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 2: iload 5
ifle 4
3: aload 4
aload 1
iload 2
iload 5
invokevirtual java.nio.CharBuffer.put:([CII)Ljava/nio/CharBuffer;
pop
4: StackMap locals: int
StackMap stack:
aload 0
aload 4
invokevirtual org.apache.catalina.connector.OutputBuffer.toReadMode:(Ljava/nio/Buffer;)V
5: iload 5
ireturn
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/apache/catalina/connector/OutputBuffer;
0 6 1 buf [C
0 6 2 off I
0 6 3 len I
0 6 4 to Ljava/nio/CharBuffer;
2 6 5 max I
MethodParameters:
Name Flags
buf
off
len
to
private int transfer(java.lang.String, int, int, java.nio.CharBuffer);
descriptor: (Ljava/lang/String;IILjava/nio/CharBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 4
invokevirtual org.apache.catalina.connector.OutputBuffer.toWriteMode:(Ljava/nio/Buffer;)V
1: iload 3
aload 4
invokevirtual java.nio.CharBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 2: iload 5
ifle 4
3: aload 4
aload 1
iload 2
iload 2
iload 5
iadd
invokevirtual java.nio.CharBuffer.put:(Ljava/lang/String;II)Ljava/nio/CharBuffer;
pop
4: StackMap locals: int
StackMap stack:
aload 0
aload 4
invokevirtual org.apache.catalina.connector.OutputBuffer.toReadMode:(Ljava/nio/Buffer;)V
5: iload 5
ireturn
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/apache/catalina/connector/OutputBuffer;
0 6 1 s Ljava/lang/String;
0 6 2 off I
0 6 3 len I
0 6 4 to Ljava/nio/CharBuffer;
2 6 5 max I
MethodParameters:
Name Flags
s
off
len
to
private void transfer(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.apache.catalina.connector.OutputBuffer.toWriteMode:(Ljava/nio/Buffer;)V
1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 3
start local 3 2: iload 3
ifle 7
3: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 4
start local 4 4: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 3
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
5: aload 2
aload 1
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
6: aload 1
iload 4
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
end local 4 7: StackMap locals: int
StackMap stack:
aload 0
aload 2
invokevirtual org.apache.catalina.connector.OutputBuffer.toReadMode:(Ljava/nio/Buffer;)V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 9 1 from Ljava/nio/ByteBuffer;
0 9 2 to Ljava/nio/ByteBuffer;
2 9 3 max I
4 7 4 fromLimit I
MethodParameters:
Name Flags
from
to
private void clear(java.nio.Buffer);
descriptor: (Ljava/nio/Buffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.Buffer.rewind:()Ljava/nio/Buffer;
iconst_0
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 2 1 buffer Ljava/nio/Buffer;
MethodParameters:
Name Flags
buffer
private boolean isFull(java.nio.Buffer);
descriptor: (Ljava/nio/Buffer;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.Buffer.limit:()I
aload 1
invokevirtual java.nio.Buffer.capacity:()I
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 2 1 buffer Ljava/nio/Buffer;
MethodParameters:
Name Flags
buffer
private void toReadMode(java.nio.Buffer);
descriptor: (Ljava/nio/Buffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 1
invokevirtual java.nio.Buffer.position:()I
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
1: invokevirtual java.nio.Buffer.reset:()Ljava/nio/Buffer;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 3 1 buffer Ljava/nio/Buffer;
MethodParameters:
Name Flags
buffer
private void toWriteMode(java.nio.Buffer);
descriptor: (Ljava/nio/Buffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.Buffer.mark:()Ljava/nio/Buffer;
1: aload 1
invokevirtual java.nio.Buffer.limit:()I
invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
2: aload 1
invokevirtual java.nio.Buffer.capacity:()I
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/connector/OutputBuffer;
0 4 1 buffer Ljava/nio/Buffer;
MethodParameters:
Name Flags
buffer
}
SourceFile: "OutputBuffer.java"
NestMembers:
org.apache.catalina.connector.OutputBuffer$PrivilegedCreateConverter
InnerClasses:
private PrivilegedCreateConverter = org.apache.catalina.connector.OutputBuffer$PrivilegedCreateConverter of org.apache.catalina.connector.OutputBuffer