public class org.glassfish.grizzly.http.server.accesslog.QueueingAppender implements org.glassfish.grizzly.http.server.accesslog.AccessLogAppender
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.glassfish.grizzly.http.server.accesslog.QueueingAppender
super_class: java.lang.Object
{
private static final java.util.logging.Logger LOGGER;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.LinkedBlockingQueue<java.lang.String> queue;
descriptor: Ljava/util/concurrent/LinkedBlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/LinkedBlockingQueue<Ljava/lang/String;>;
private final org.glassfish.grizzly.http.server.accesslog.AccessLogAppender appender;
descriptor: Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/glassfish/grizzly/http/server/HttpServer;
invokestatic org.glassfish.grizzly.Grizzly.logger:(Ljava/lang/Class;)Ljava/util/logging/Logger;
putstatic org.glassfish.grizzly.http.server.accesslog.QueueingAppender.LOGGER:Ljava/util/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.glassfish.grizzly.http.server.accesslog.AccessLogAppender);
descriptor: (Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.LinkedBlockingQueue
dup
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
putfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.queue:Ljava/util/concurrent/LinkedBlockingQueue;
2: aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "Null appender"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: org.glassfish.grizzly.http.server.accesslog.QueueingAppender org.glassfish.grizzly.http.server.accesslog.AccessLogAppender
StackMap stack:
aload 0
aload 1
putfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.appender:Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;
5: aload 0
new java.lang.Thread
dup
new org.glassfish.grizzly.http.server.accesslog.QueueingAppender$Dequeuer
dup
aload 0
invokespecial org.glassfish.grizzly.http.server.accesslog.QueueingAppender$Dequeuer.<init>:(Lorg/glassfish/grizzly/http/server/accesslog/QueueingAppender;)V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
putfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
6: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
7: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
8: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/glassfish/grizzly/http/server/accesslog/QueueingAppender;
0 10 1 appender Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;
MethodParameters:
Name Flags
appender
public void append(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.isAlive:()Z
ifeq 5
1: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.queue:Ljava/util/concurrent/LinkedBlockingQueue;
aload 1
invokevirtual java.util.concurrent.LinkedBlockingQueue.put:(Ljava/lang/Object;)V
2: goto 5
StackMap locals:
StackMap stack: java.lang.InterruptedException
3: astore 2
start local 2 4: getstatic org.glassfish.grizzly.http.server.accesslog.QueueingAppender.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Interrupted adding log entry to the queue"
aload 2
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/glassfish/grizzly/http/server/accesslog/QueueingAppender;
0 6 1 accessLogEntry Ljava/lang/String;
4 5 2 exception Ljava/lang/InterruptedException;
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
accessLogEntry
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
1: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.join:()V
2: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
3: astore 1
start local 1 4: getstatic org.glassfish.grizzly.http.server.accesslog.QueueingAppender.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Interrupted stopping de-queuer"
aload 1
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 5: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.appender:Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;
invokeinterface org.glassfish.grizzly.http.server.accesslog.AccessLogAppender.close:()V
goto 10
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
7: aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.appender:Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;
invokeinterface org.glassfish.grizzly.http.server.accesslog.AccessLogAppender.close:()V
8: aload 2
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.accesslog.QueueingAppender.appender:Lorg/glassfish/grizzly/http/server/accesslog/AccessLogAppender;
invokeinterface org.glassfish.grizzly.http.server.accesslog.AccessLogAppender.close:()V
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/glassfish/grizzly/http/server/accesslog/QueueingAppender;
4 5 1 exception Ljava/lang/InterruptedException;
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
1 5 6 any
Exceptions:
throws java.io.IOException
}
SourceFile: "QueueingAppender.java"
NestMembers:
org.glassfish.grizzly.http.server.accesslog.QueueingAppender$Dequeuer
InnerClasses:
private final Dequeuer = org.glassfish.grizzly.http.server.accesslog.QueueingAppender$Dequeuer of org.glassfish.grizzly.http.server.accesslog.QueueingAppender