class org.glassfish.jersey.server.ChunkedOutput$1 implements java.util.concurrent.Callable<java.lang.Void>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.glassfish.jersey.server.ChunkedOutput$1
super_class: java.lang.Object
{
final org.glassfish.jersey.server.ChunkedOutput this$0;
descriptor: Lorg/glassfish/jersey/server/ChunkedOutput;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(org.glassfish.jersey.server.ChunkedOutput);
descriptor: (Lorg/glassfish/jersey/server/ChunkedOutput;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // org.glassfish.jersey.server.ChunkedOutput$1 this
0: .line 195
aload 0 /* this */
aload 1
putfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.glassfish.jersey.server.ChunkedOutput$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/jersey/server/ChunkedOutput$1;
MethodParameters:
Name Flags
this$0 final
public java.lang.Void call();
descriptor: ()Ljava/lang/Void;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=5, args_size=1
start local 0 // org.glassfish.jersey.server.ChunkedOutput$1 this
0: .line 201
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
dup
astore 3
monitorenter
1: .line 202
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.flushing:Z
ifeq 4
2: .line 204
aload 3
monitorexit
3: aconst_null
areturn
4: .line 211
StackMap locals: org.glassfish.jersey.server.ChunkedOutput$1 top top org.glassfish.jersey.server.ChunkedOutput
StackMap stack:
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.closed:Z
istore 1 /* shouldClose */
start local 1 // boolean shouldClose
5: .line 212
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.queue:Ljava/util/concurrent/BlockingDeque;
invokeinterface java.util.concurrent.BlockingDeque.poll:()Ljava/lang/Object;
astore 2 /* t */
start local 2 // java.lang.Object t
6: .line 213
aload 2 /* t */
ifnonnull 7
iload 1 /* shouldClose */
ifeq 8
7: .line 217
StackMap locals: org.glassfish.jersey.server.ChunkedOutput$1 int java.lang.Object org.glassfish.jersey.server.ChunkedOutput
StackMap stack:
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
iconst_1
putfield org.glassfish.jersey.server.ChunkedOutput.flushing:Z
8: .line 201
StackMap locals:
StackMap stack:
aload 3
monitorexit
9: goto 51
end local 2 // java.lang.Object t
end local 1 // boolean shouldClose
StackMap locals: org.glassfish.jersey.server.ChunkedOutput$1 top top org.glassfish.jersey.server.ChunkedOutput
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
start local 1 // boolean shouldClose
start local 2 // java.lang.Object t
12: .line 223
StackMap locals: org.glassfish.jersey.server.ChunkedOutput$1 int java.lang.Object
StackMap stack:
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.responseContext:Lorg/glassfish/jersey/server/ContainerResponse;
invokevirtual org.glassfish.jersey.server.ContainerResponse.getEntityStream:()Ljava/io/OutputStream;
astore 3 /* origStream */
start local 3 // java.io.OutputStream origStream
13: .line 224
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.requestContext:Lorg/glassfish/jersey/server/ContainerRequest;
invokevirtual org.glassfish.jersey.server.ContainerRequest.getWorkers:()Lorg/glassfish/jersey/message/MessageBodyWorkers;
14: .line 225
aload 2 /* t */
15: .line 226
aload 2 /* t */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
16: .line 227
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
invokevirtual org.glassfish.jersey.server.ChunkedOutput.getType:()Ljava/lang/reflect/Type;
17: .line 228
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.responseContext:Lorg/glassfish/jersey/server/ContainerResponse;
invokevirtual org.glassfish.jersey.server.ContainerResponse.getEntityAnnotations:()[Ljava/lang/annotation/Annotation;
18: .line 229
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.responseContext:Lorg/glassfish/jersey/server/ContainerResponse;
invokevirtual org.glassfish.jersey.server.ContainerResponse.getMediaType:()Ljavax/ws/rs/core/MediaType;
19: .line 230
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.responseContext:Lorg/glassfish/jersey/server/ContainerResponse;
invokevirtual org.glassfish.jersey.server.ContainerResponse.getHeaders:()Ljavax/ws/rs/core/MultivaluedMap;
20: .line 231
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.requestContext:Lorg/glassfish/jersey/server/ContainerRequest;
invokevirtual org.glassfish.jersey.server.ContainerRequest.getPropertiesDelegate:()Lorg/glassfish/jersey/internal/PropertiesDelegate;
21: .line 232
aload 3 /* origStream */
22: .line 236
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
23: .line 224
invokeinterface org.glassfish.jersey.message.MessageBodyWorkers.writeTo:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Lorg/glassfish/jersey/internal/PropertiesDelegate;Ljava/io/OutputStream;Ljava/lang/Iterable;)Ljava/io/OutputStream;
astore 4 /* writtenStream */
start local 4 // java.io.OutputStream writtenStream
24: .line 239
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.chunkDelimiter:[B
getstatic org.glassfish.jersey.server.ChunkedOutput.ZERO_LENGTH_DELIMITER:[B
if_acmpeq 26
25: .line 241
aload 4 /* writtenStream */
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.chunkDelimiter:[B
invokevirtual java.io.OutputStream.write:([B)V
26: .line 245
StackMap locals: java.io.OutputStream java.io.OutputStream
StackMap stack:
aload 4 /* writtenStream */
invokevirtual java.io.OutputStream.flush:()V
27: .line 247
aload 3 /* origStream */
aload 4 /* writtenStream */
if_acmpeq 37
28: .line 249
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.responseContext:Lorg/glassfish/jersey/server/ContainerResponse;
aload 4 /* writtenStream */
invokevirtual org.glassfish.jersey.server.ContainerResponse.setEntityStream:(Ljava/io/OutputStream;)V
end local 4 // java.io.OutputStream writtenStream
end local 3 // java.io.OutputStream origStream
29: .line 251
goto 37
StackMap locals: org.glassfish.jersey.server.ChunkedOutput$1 int java.lang.Object
StackMap stack: java.io.IOException
30: astore 3 /* ioe */
start local 3 // java.io.IOException ioe
31: .line 252
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.connectionCallback:Ljavax/ws/rs/container/ConnectionCallback;
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.asyncContext:Lorg/glassfish/jersey/server/AsyncContext;
invokeinterface javax.ws.rs.container.ConnectionCallback.onDisconnect:(Ljavax/ws/rs/container/AsyncResponse;)V
32: .line 253
aload 3 /* ioe */
athrow
end local 3 // java.io.IOException ioe
33: .line 254
StackMap locals:
StackMap stack: org.glassfish.jersey.server.internal.process.MappableException
astore 3 /* mpe */
start local 3 // org.glassfish.jersey.server.internal.process.MappableException mpe
34: .line 255
aload 3 /* mpe */
invokevirtual org.glassfish.jersey.server.internal.process.MappableException.getCause:()Ljava/lang/Throwable;
instanceof java.io.IOException
ifeq 36
35: .line 256
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.connectionCallback:Ljavax/ws/rs/container/ConnectionCallback;
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.asyncContext:Lorg/glassfish/jersey/server/AsyncContext;
invokeinterface javax.ws.rs.container.ConnectionCallback.onDisconnect:(Ljavax/ws/rs/container/AsyncResponse;)V
36: .line 258
StackMap locals: org.glassfish.jersey.server.internal.process.MappableException
StackMap stack:
aload 3 /* mpe */
athrow
end local 3 // org.glassfish.jersey.server.internal.process.MappableException mpe
37: .line 260
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.queue:Ljava/util/concurrent/BlockingDeque;
invokeinterface java.util.concurrent.BlockingDeque.poll:()Ljava/lang/Object;
astore 2 /* t */
38: .line 261
aload 2 /* t */
ifnonnull 51
39: .line 262
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
dup
astore 3
monitorenter
40: .line 267
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.closed:Z
istore 1 /* shouldClose */
41: .line 268
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.queue:Ljava/util/concurrent/BlockingDeque;
invokeinterface java.util.concurrent.BlockingDeque.poll:()Ljava/lang/Object;
astore 2 /* t */
42: .line 269
aload 2 /* t */
ifnonnull 47
43: .line 274
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
getfield org.glassfish.jersey.server.ChunkedOutput.responseContext:Lorg/glassfish/jersey/server/ContainerResponse;
invokevirtual org.glassfish.jersey.server.ContainerResponse.commitStream:()V
44: .line 277
aload 0 /* this */
getfield org.glassfish.jersey.server.ChunkedOutput$1.this$0:Lorg/glassfish/jersey/server/ChunkedOutput;
iload 1 /* shouldClose */
putfield org.glassfish.jersey.server.ChunkedOutput.flushing:Z
45: .line 278
aload 3
monitorexit
46: goto 52
47: .line 262
StackMap locals: org.glassfish.jersey.server.ChunkedOutput
StackMap stack:
aload 3
monitorexit
48: goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
49: aload 3
monitorexit
50: athrow
51: .line 221
StackMap locals:
StackMap stack:
aload 2 /* t */
ifnonnull 12
52: .line 283
StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 // java.lang.Object t
end local 1 // boolean shouldClose
end local 0 // org.glassfish.jersey.server.ChunkedOutput$1 this
LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lorg/glassfish/jersey/server/ChunkedOutput$1;
5 10 1 shouldClose Z
12 53 1 shouldClose Z
6 10 2 t TT;
12 53 2 t TT;
13 29 3 origStream Ljava/io/OutputStream;
24 29 4 writtenStream Ljava/io/OutputStream;
31 33 3 ioe Ljava/io/IOException;
34 37 3 mpe Lorg/glassfish/jersey/server/internal/process/MappableException;
Exception table:
from to target type
1 3 10 any
4 9 10 any
10 11 10 any
12 29 30 Class java.io.IOException
12 29 33 Class org.glassfish.jersey.server.internal.process.MappableException
40 46 49 any
47 48 49 any
49 50 49 any
Exceptions:
throws java.io.IOException
public java.lang.Object call();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: .line 1
aload 0
invokevirtual org.glassfish.jersey.server.ChunkedOutput$1.call:()Ljava/lang/Void;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/Void;>;
SourceFile: "ChunkedOutput.java"
EnclosingMethod: org.glassfish.jersey.server.ChunkedOutput.flushQueue:()V
NestHost: org.glassfish.jersey.server.ChunkedOutput
InnerClasses:
org.glassfish.jersey.server.ChunkedOutput$1