public class org.apache.coyote.http11.Http11OutputBuffer implements org.apache.coyote.http11.HttpOutputBuffer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.coyote.http11.Http11OutputBuffer
super_class: java.lang.Object
{
protected static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected final org.apache.coyote.Response response;
descriptor: Lorg/apache/coyote/Response;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private volatile boolean ackSent;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
protected boolean responseFinished;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected final java.nio.ByteBuffer ;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected org.apache.coyote.http11.OutputFilter[] filterLibrary;
descriptor: [Lorg/apache/coyote/http11/OutputFilter;
flags: (0x0004) ACC_PROTECTED
protected org.apache.coyote.http11.OutputFilter[] activeFilters;
descriptor: [Lorg/apache/coyote/http11/OutputFilter;
flags: (0x0004) ACC_PROTECTED
protected int lastActiveFilter;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected org.apache.coyote.http11.HttpOutputBuffer outputStreamOutputBuffer;
descriptor: Lorg/apache/coyote/http11/HttpOutputBuffer;
flags: (0x0004) ACC_PROTECTED
protected org.apache.tomcat.util.net.SocketWrapperBase<?> socketWrapper;
descriptor: Lorg/apache/tomcat/util/net/SocketWrapperBase;
flags: (0x0004) ACC_PROTECTED
Signature: Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
protected long byteCount;
descriptor: J
flags: (0x0004) ACC_PROTECTED
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/coyote/http11/Http11OutputBuffer;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.coyote.http11.Http11OutputBuffer.sm:Lorg/apache/tomcat/util/res/StringManager;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.apache.coyote.Response, int);
descriptor: (Lorg/apache/coyote/Response;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.coyote.http11.Http11OutputBuffer.ackSent:Z
2: aload 0
lconst_0
putfield org.apache.coyote.http11.Http11OutputBuffer.byteCount:J
3: aload 0
aload 1
putfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
4: aload 0
iload 2
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
5: aload 0
iconst_0
anewarray org.apache.coyote.http11.OutputFilter
putfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
6: aload 0
iconst_0
anewarray org.apache.coyote.http11.OutputFilter
putfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
7: aload 0
iconst_m1
putfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
8: aload 0
iconst_0
putfield org.apache.coyote.http11.Http11OutputBuffer.responseFinished:Z
9: aload 0
new org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer
dup
aload 0
invokespecial org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.<init>:(Lorg/apache/coyote/http11/Http11OutputBuffer;)V
putfield org.apache.coyote.http11.Http11OutputBuffer.outputStreamOutputBuffer:Lorg/apache/coyote/http11/HttpOutputBuffer;
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 11 1 response Lorg/apache/coyote/Response;
0 11 2 headerBufferSize I
MethodParameters:
Name Flags
response
headerBufferSize
public void addFilter(org.apache.coyote.http11.OutputFilter);
descriptor: (Lorg/apache/coyote/http11/OutputFilter;)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.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
arraylength
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast org.apache.coyote.http11.OutputFilter[]
astore 2
start local 2 1: aload 2
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
arraylength
aload 1
aastore
2: aload 0
aload 2
putfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
3: aload 0
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
arraylength
anewarray org.apache.coyote.http11.OutputFilter
putfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 5 1 filter Lorg/apache/coyote/http11/OutputFilter;
1 5 2 newFilterLibrary [Lorg/apache/coyote/http11/OutputFilter;
MethodParameters:
Name Flags
filter
public org.apache.coyote.http11.OutputFilter[] getFilters();
descriptor: ()[Lorg/apache/coyote/http11/OutputFilter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
public void addActiveFilter(org.apache.coyote.http11.OutputFilter);
descriptor: (Lorg/apache/coyote/http11/OutputFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
iconst_m1
if_icmpne 3
1: aload 1
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.outputStreamOutputBuffer:Lorg/apache/coyote/http11/HttpOutputBuffer;
invokeinterface org.apache.coyote.http11.OutputFilter.setBuffer:(Lorg/apache/coyote/http11/HttpOutputBuffer;)V
2: goto 10
3: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 4: goto 8
5: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
iload 2
aaload
aload 1
if_acmpne 7
6: return
7: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
if_icmple 5
end local 2 9: aload 1
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
aaload
invokeinterface org.apache.coyote.http11.OutputFilter.setBuffer:(Lorg/apache/coyote/http11/HttpOutputBuffer;)V
10: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
dup
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
iconst_1
iadd
dup_x1
putfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
aload 1
aastore
11: aload 1
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
invokeinterface org.apache.coyote.http11.OutputFilter.setResponse:(Lorg/apache/coyote/Response;)V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 13 1 filter Lorg/apache/coyote/http11/OutputFilter;
4 9 2 i I
MethodParameters:
Name Flags
filter
public int doWrite(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.isCommitted:()Z
ifne 2
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
getstatic org.apache.coyote.ActionCode.COMMIT:Lorg/apache/coyote/ActionCode;
aconst_null
invokevirtual org.apache.coyote.Response.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
iconst_m1
if_icmpne 4
3: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.outputStreamOutputBuffer:Lorg/apache/coyote/http11/HttpOutputBuffer;
aload 1
invokeinterface org.apache.coyote.http11.HttpOutputBuffer.doWrite:(Ljava/nio/ByteBuffer;)I
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
aaload
aload 1
invokeinterface org.apache.coyote.http11.OutputFilter.doWrite:(Ljava/nio/ByteBuffer;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 5 1 chunk Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chunk
public long getBytesWritten();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
iconst_m1
if_icmpne 2
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.outputStreamOutputBuffer:Lorg/apache/coyote/http11/HttpOutputBuffer;
invokeinterface org.apache.coyote.http11.HttpOutputBuffer.getBytesWritten:()J
lreturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
aaload
invokeinterface org.apache.coyote.http11.OutputFilter.getBytesWritten:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
iconst_m1
if_icmpne 3
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.outputStreamOutputBuffer:Lorg/apache/coyote/http11/HttpOutputBuffer;
invokeinterface org.apache.coyote.http11.HttpOutputBuffer.flush:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
aaload
invokeinterface org.apache.coyote.http11.OutputFilter.flush:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
Exceptions:
throws java.io.IOException
public void end();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.responseFinished:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
iconst_m1
if_icmpne 5
3: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.outputStreamOutputBuffer:Lorg/apache/coyote/http11/HttpOutputBuffer;
invokeinterface org.apache.coyote.http11.HttpOutputBuffer.end:()V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
aaload
invokeinterface org.apache.coyote.http11.OutputFilter.end:()V
6: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.apache.coyote.http11.Http11OutputBuffer.responseFinished:Z
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
Exceptions:
throws java.io.IOException
void ();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
public void recycle();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.nextRequest:()V
1: aload 0
aconst_null
putfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
public void nextRequest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
iload 1
aaload
invokeinterface org.apache.coyote.http11.OutputFilter.recycle:()V
3: iinc 1 1
StackMap locals:
StackMap stack:
4: iload 1
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
if_icmple 2
end local 1 5: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.recycle:()V
6: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
7: aload 0
iconst_m1
putfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
8: aload 0
iconst_0
putfield org.apache.coyote.http11.Http11OutputBuffer.ackSent:Z
9: aload 0
iconst_0
putfield org.apache.coyote.http11.Http11OutputBuffer.responseFinished:Z
10: aload 0
lconst_0
putfield org.apache.coyote.http11.Http11OutputBuffer.byteCount:J
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
1 5 1 i I
public void init(org.apache.tomcat.util.net.SocketWrapperBase<?>);
descriptor: (Lorg/apache/tomcat/util/net/SocketWrapperBase;)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.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 2 1 socketWrapper Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
Signature: (Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;)V
MethodParameters:
Name Flags
socketWrapper
public void sendAck();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.isCommitted:()Z
ifne 5
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.ackSent:Z
ifne 5
1: aload 0
iconst_1
putfield org.apache.coyote.http11.Http11OutputBuffer.ackSent:Z
2: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aload 0
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.isBlocking:()Z
getstatic org.apache.coyote.http11.Constants.ACK_BYTES:[B
iconst_0
getstatic org.apache.coyote.http11.Constants.ACK_BYTES:[B
arraylength
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
3: aload 0
iconst_1
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.flushBuffer:(Z)Z
ifeq 5
4: new java.io.IOException
dup
getstatic org.apache.coyote.http11.Http11OutputBuffer.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "iob.failedwrite.ack"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
Exceptions:
throws java.io.IOException
protected void commit();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
iconst_1
invokevirtual org.apache.coyote.Response.setCommitted:(Z)V
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
ifle 12
2: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
3: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
astore 1
start local 1 4: aload 1
ifnull 7
5: aload 1
aload 0
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.isBlocking:()Z
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(ZLjava/nio/ByteBuffer;)V
6: goto 11
7: StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase
StackMap stack:
new org.apache.coyote.CloseNowException
dup
getstatic org.apache.coyote.http11.Http11OutputBuffer.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "iob.failedwrite"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial org.apache.coyote.CloseNowException.<init>:(Ljava/lang/String;)V
athrow
end local 1 8: StackMap locals: org.apache.coyote.http11.Http11OutputBuffer
StackMap stack: java.lang.Throwable
astore 2
9: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
10: aload 2
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
4 8 1 socketWrapper Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
Exception table:
from to target type
3 8 8 any
Exceptions:
throws java.io.IOException
public void sendStatus();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getstatic org.apache.coyote.http11.Constants.HTTP_11_BYTES:[B
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:([B)V
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getStatus:()I
istore 1
start local 1 3: iload 1
lookupswitch { // 3
200: 4
400: 6
404: 8
default: 10
}
4: StackMap locals: int
StackMap stack:
aload 0
getstatic org.apache.coyote.http11.Constants._200_BYTES:[B
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:([B)V
5: goto 11
6: StackMap locals:
StackMap stack:
aload 0
getstatic org.apache.coyote.http11.Constants._400_BYTES:[B
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:([B)V
7: goto 11
8: StackMap locals:
StackMap stack:
aload 0
getstatic org.apache.coyote.http11.Constants._404_BYTES:[B
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:([B)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:(I)V
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
bipush 13
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
bipush 10
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
3 14 1 status I
public void (org.apache.tomcat.util.buf.MessageBytes, org.apache.tomcat.util.buf.MessageBytes);
descriptor: (Lorg/apache/tomcat/util/buf/MessageBytes;Lorg/apache/tomcat/util/buf/MessageBytes;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
bipush 58
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: aload 0
aload 2
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:(Lorg/apache/tomcat/util/buf/MessageBytes;)V
3: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
bipush 13
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
bipush 10
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 5 1 name Lorg/apache/tomcat/util/buf/MessageBytes;
0 5 2 value Lorg/apache/tomcat/util/buf/MessageBytes;
MethodParameters:
Name Flags
name
value
public void ();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
bipush 13
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
bipush 10
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
private void write(org.apache.tomcat.util.buf.MessageBytes);
descriptor: (Lorg/apache/tomcat/util/buf/MessageBytes;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getType:()I
iconst_2
if_icmpeq 11
1: aload 1
invokevirtual org.apache.tomcat.util.buf.MessageBytes.toBytes:()V
2: aload 1
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
astore 2
start local 2 3: aload 2
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
astore 3
start local 3 4: aload 2
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getOffset:()I
istore 4
start local 4 5: goto 10
6: StackMap locals: org.apache.tomcat.util.buf.ByteChunk byte[] int
StackMap stack:
aload 3
iload 4
baload
iconst_m1
if_icmple 7
aload 3
iload 4
baload
bipush 31
if_icmpgt 7
aload 3
iload 4
baload
bipush 9
if_icmpne 8
7: StackMap locals:
StackMap stack:
aload 3
iload 4
baload
bipush 127
if_icmpne 9
8: StackMap locals:
StackMap stack:
aload 3
iload 4
bipush 32
bastore
9: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
aload 2
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
if_icmplt 6
end local 4 end local 3 end local 2 11: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.tomcat.util.buf.MessageBytes.getByteChunk:()Lorg/apache/tomcat/util/buf/ByteChunk;
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.write:(Lorg/apache/tomcat/util/buf/ByteChunk;)V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 13 1 mb Lorg/apache/tomcat/util/buf/MessageBytes;
3 11 2 bc Lorg/apache/tomcat/util/buf/ByteChunk;
4 11 3 buffer [B
5 11 4 i I
MethodParameters:
Name Flags
mb
private void write(org.apache.tomcat.util.buf.ByteChunk);
descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
istore 2
start local 2 1: aload 0
iload 2
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.checkLengthBeforeWrite:(I)V
2: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
aload 1
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
iload 2
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 4 1 bc Lorg/apache/tomcat/util/buf/ByteChunk;
1 4 2 length I
MethodParameters:
Name Flags
bc
public void write(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
arraylength
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.checkLengthBeforeWrite:(I)V
1: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
aload 1
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 3 1 b [B
MethodParameters:
Name Flags
b
private void write(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: iload 1
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.String.length:()I
istore 3
start local 3 2: aload 0
iload 3
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.checkLengthBeforeWrite:(I)V
3: iconst_0
istore 4
start local 4 4: goto 8
5: StackMap locals: java.lang.String int int
StackMap stack:
aload 2
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 6: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
iload 5
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
end local 5 7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 3
if_icmplt 5
end local 4 9: 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/coyote/http11/Http11OutputBuffer;
0 10 1 value I
1 10 2 s Ljava/lang/String;
2 10 3 len I
4 9 4 i I
6 7 5 c C
MethodParameters:
Name Flags
value
private void checkLengthBeforeWrite(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iload 1
iadd
iconst_4
iadd
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.headerBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
if_icmple 4
1: new org.apache.coyote.http11.HeadersTooLargeException
dup
2: getstatic org.apache.coyote.http11.Http11OutputBuffer.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "iob.responseheadertoolarge.error"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
3: invokespecial org.apache.coyote.http11.HeadersTooLargeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 5 1 length I
MethodParameters:
Name Flags
length
protected boolean flushBuffer(boolean);
descriptor: (Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
iload 1
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
0 1 1 block Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
protected final boolean isBlocking();
descriptor: ()Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.response:Lorg/apache/coyote/Response;
invokevirtual org.apache.coyote.Response.getWriteListener:()Ljakarta/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/coyote/http11/Http11OutputBuffer;
protected final boolean isReady();
descriptor: ()Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.coyote.http11.Http11OutputBuffer.hasDataToWrite:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: istore 1
start local 1 3: iload 1
ifne 5
4: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.registerWriteInterest:()V
5: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
3 6 1 result Z
public boolean hasDataToWrite();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.hasDataToWrite:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
public void registerWriteInterest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.registerWriteInterest:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
boolean isChunking();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.activeFilters:[Lorg/apache/coyote/http11/OutputFilter;
iload 1
aaload
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.filterLibrary:[Lorg/apache/coyote/http11/OutputFilter;
iconst_1
aaload
if_acmpne 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
aload 0
getfield org.apache.coyote.http11.Http11OutputBuffer.lastActiveFilter:I
if_icmplt 2
end local 1 6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/coyote/http11/Http11OutputBuffer;
1 6 1 i I
}
SourceFile: "Http11OutputBuffer.java"
NestMembers:
org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer
InnerClasses:
protected SocketOutputBuffer = org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer of org.apache.coyote.http11.Http11OutputBuffer