public class ch.qos.logback.core.joran.action.ShutdownHookAction extends ch.qos.logback.core.joran.action.Action
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: ch.qos.logback.core.joran.action.ShutdownHookAction
super_class: ch.qos.logback.core.joran.action.Action
{
ch.qos.logback.core.hook.ShutdownHookBase hook;
descriptor: Lch/qos/logback/core/hook/ShutdownHookBase;
flags: (0x0000)
private boolean inError;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial ch.qos.logback.core.joran.action.Action.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lch/qos/logback/core/joran/action/ShutdownHookAction;
public void begin(ch.qos.logback.core.joran.spi.InterpretationContext, java.lang.String, org.xml.sax.Attributes);
descriptor: (Lch/qos/logback/core/joran/spi/InterpretationContext;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
putfield ch.qos.logback.core.joran.action.ShutdownHookAction.hook:Lch/qos/logback/core/hook/ShutdownHookBase;
1: aload 0
iconst_0
putfield ch.qos.logback.core.joran.action.ShutdownHookAction.inError:Z
2: aload 3
ldc "class"
invokeinterface org.xml.sax.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 3: aload 4
invokestatic ch.qos.logback.core.util.OptionHelper.isEmpty:(Ljava/lang/String;)Z
ifeq 7
4: aload 0
new java.lang.StringBuilder
dup
ldc "Missing class name for shutdown hook. Near ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] line "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 1
invokevirtual ch.qos.logback.core.joran.action.ShutdownHookAction.getLineNumber:(Lch/qos/logback/core/joran/spi/InterpretationContext;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual ch.qos.logback.core.joran.action.ShutdownHookAction.addError:(Ljava/lang/String;)V
5: aload 0
iconst_1
putfield ch.qos.logback.core.joran.action.ShutdownHookAction.inError:Z
6: return
7: StackMap locals: java.lang.String
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "About to instantiate shutdown hook of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual ch.qos.logback.core.joran.action.ShutdownHookAction.addInfo:(Ljava/lang/String;)V
8: aload 0
aload 4
ldc Lch/qos/logback/core/hook/ShutdownHookBase;
aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.context:Lch/qos/logback/core/Context;
invokestatic ch.qos.logback.core.util.OptionHelper.instantiateByClassName:(Ljava/lang/String;Ljava/lang/Class;Lch/qos/logback/core/Context;)Ljava/lang/Object;
checkcast ch.qos.logback.core.hook.ShutdownHookBase
putfield ch.qos.logback.core.joran.action.ShutdownHookAction.hook:Lch/qos/logback/core/hook/ShutdownHookBase;
9: aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.hook:Lch/qos/logback/core/hook/ShutdownHookBase;
aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.context:Lch/qos/logback/core/Context;
invokevirtual ch.qos.logback.core.hook.ShutdownHookBase.setContext:(Lch/qos/logback/core/Context;)V
10: aload 1
aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.hook:Lch/qos/logback/core/hook/ShutdownHookBase;
invokevirtual ch.qos.logback.core.joran.spi.InterpretationContext.pushObject:(Ljava/lang/Object;)V
11: goto 16
StackMap locals:
StackMap stack: java.lang.Exception
12: astore 5
start local 5 13: aload 0
iconst_1
putfield ch.qos.logback.core.joran.action.ShutdownHookAction.inError:Z
14: aload 0
new java.lang.StringBuilder
dup
ldc "Could not create a shutdown hook of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokevirtual ch.qos.logback.core.joran.action.ShutdownHookAction.addError:(Ljava/lang/String;Ljava/lang/Throwable;)V
15: new ch.qos.logback.core.joran.spi.ActionException
dup
aload 5
invokespecial ch.qos.logback.core.joran.spi.ActionException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 16: 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 17 0 this Lch/qos/logback/core/joran/action/ShutdownHookAction;
0 17 1 ic Lch/qos/logback/core/joran/spi/InterpretationContext;
0 17 2 name Ljava/lang/String;
0 17 3 attributes Lorg/xml/sax/Attributes;
3 17 4 className Ljava/lang/String;
13 16 5 e Ljava/lang/Exception;
Exception table:
from to target type
7 11 12 Class java.lang.Exception
Exceptions:
throws ch.qos.logback.core.joran.spi.ActionException
MethodParameters:
Name Flags
ic
name
attributes
public void end(ch.qos.logback.core.joran.spi.InterpretationContext, java.lang.String);
descriptor: (Lch/qos/logback/core/joran/spi/InterpretationContext;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.inError:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual ch.qos.logback.core.joran.spi.InterpretationContext.peekObject:()Ljava/lang/Object;
astore 3
start local 3 3: aload 3
aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.hook:Lch/qos/logback/core/hook/ShutdownHookBase;
if_acmpeq 6
4: aload 0
ldc "The object at the of the stack is not the hook pushed earlier."
invokevirtual ch.qos.logback.core.joran.action.ShutdownHookAction.addWarn:(Ljava/lang/String;)V
5: goto 10
6: StackMap locals: java.lang.Object
StackMap stack:
aload 1
invokevirtual ch.qos.logback.core.joran.spi.InterpretationContext.popObject:()Ljava/lang/Object;
pop
7: new java.lang.Thread
dup
aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.hook:Lch/qos/logback/core/hook/ShutdownHookBase;
new java.lang.StringBuilder
dup
ldc "Logback shutdown hook ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.context:Lch/qos/logback/core/Context;
invokeinterface ch.qos.logback.core.Context.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
astore 4
start local 4 8: aload 0
getfield ch.qos.logback.core.joran.action.ShutdownHookAction.context:Lch/qos/logback/core/Context;
ldc "SHUTDOWN_HOOK"
aload 4
invokeinterface ch.qos.logback.core.Context.putObject:(Ljava/lang/String;Ljava/lang/Object;)V
9: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
aload 4
invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
end local 4 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 Lch/qos/logback/core/joran/action/ShutdownHookAction;
0 11 1 ic Lch/qos/logback/core/joran/spi/InterpretationContext;
0 11 2 name Ljava/lang/String;
3 11 3 o Ljava/lang/Object;
8 10 4 hookThread Ljava/lang/Thread;
Exceptions:
throws ch.qos.logback.core.joran.spi.ActionException
MethodParameters:
Name Flags
ic
name
}
SourceFile: "ShutdownHookAction.java"