public abstract class freemarker.log.Logger
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: freemarker.log.Logger
super_class: java.lang.Object
{
public static final java.lang.String SYSTEM_PROPERTY_NAME_LOGGER_LIBRARY;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "org.freemarker.loggerLibrary"
public static final int LIBRARY_AUTO;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int MIN_LIBRARY_ENUM;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public static final java.lang.String LIBRARY_NAME_AUTO;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "auto"
public static final int LIBRARY_NONE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final java.lang.String LIBRARY_NAME_NONE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "none"
public static final int LIBRARY_JAVA;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final java.lang.String LIBRARY_NAME_JUL;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "JUL"
public static final int LIBRARY_AVALON;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public static final java.lang.String LIBRARY_NAME_AVALON;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "Avalon"
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public static final int LIBRARY_LOG4J;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final java.lang.String LIBRARY_NAME_LOG4J;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "Log4j"
public static final int LIBRARY_COMMONS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final java.lang.String LIBRARY_NAME_COMMONS_LOGGING;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "CommonsLogging"
public static final int LIBRARY_SLF4J;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5
public static final java.lang.String LIBRARY_NAME_SLF4J;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "SLF4J"
private static final int MAX_LIBRARY_ENUM;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final java.lang.String REAL_LOG4J_PRESENCE_CLASS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "org.apache.log4j.FileAppender"
private static final java.lang.String LOG4J_OVER_SLF4J_TESTER_CLASS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "freemarker.log._Log4jOverSLF4JTester"
private static final java.lang.String[] LIBRARIES_BY_PRIORITY;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static int libraryEnum;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static freemarker.log.LoggerFactory loggerFactory;
descriptor: Lfreemarker/log/LoggerFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static boolean initializedFromSystemProperty;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.String categoryPrefix;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.util.Map loggersByCategory;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 10
anewarray java.lang.String
dup
iconst_1
1: ldc "JUL"
aastore
dup
iconst_2
2: ldc "org.apache.log.Logger"
aastore
dup
iconst_3
ldc "Avalon"
aastore
dup
iconst_4
3: ldc "org.apache.log4j.Logger"
aastore
dup
iconst_5
ldc "Log4j"
aastore
dup
bipush 6
4: ldc "org.apache.commons.logging.Log"
aastore
dup
bipush 7
ldc "CommonsLogging"
aastore
dup
bipush 8
5: ldc "org.slf4j.Logger"
aastore
dup
bipush 9
ldc "SLF4J"
aastore
6: putstatic freemarker.log.Logger.LIBRARIES_BY_PRIORITY:[Ljava/lang/String;
7: getstatic freemarker.log.Logger.LIBRARIES_BY_PRIORITY:[Ljava/lang/String;
arraylength
iconst_2
idiv
iconst_5
if_icmpeq 9
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
ldc ""
putstatic freemarker.log.Logger.categoryPrefix:Ljava/lang/String;
10: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic freemarker.log.Logger.loggersByCategory:Ljava/util/Map;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/log/Logger;
private static java.lang.String getAvailabilityCheckClassName(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
iconst_m1
if_icmpeq 1
iload 0
ifne 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
getstatic freemarker.log.Logger.LIBRARIES_BY_PRIORITY:[Ljava/lang/String;
iload 0
iconst_1
isub
iconst_2
imul
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 libraryEnum I
MethodParameters:
Name Flags
libraryEnum
private static java.lang.String getLibraryName(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
iconst_m1
if_icmpne 2
1: ldc "auto"
areturn
2: StackMap locals:
StackMap stack:
iload 0
ifne 4
3: ldc "none"
areturn
4: StackMap locals:
StackMap stack:
getstatic freemarker.log.Logger.LIBRARIES_BY_PRIORITY:[Ljava/lang/String;
iload 0
iconst_1
isub
iconst_2
imul
iconst_1
iadd
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 libraryEnum I
MethodParameters:
Name Flags
libraryEnum
private static boolean isAutoDetected(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_m1
if_icmpeq 2
iload 0
ifeq 2
1: iload 0
iconst_5
if_icmpeq 2
iload 0
iconst_4
if_icmpne 3
2: StackMap locals:
StackMap stack:
iconst_0
goto 4
StackMap locals:
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 libraryEnum I
MethodParameters:
Name Flags
libraryEnum
public static void selectLoggerLibrary(int);
descriptor: (I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: iload 0
iconst_m1
if_icmplt 1
iload 0
iconst_5
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Library enum value out of range"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
ldc Lfreemarker/log/Logger;
dup
astore 1
monitorenter
3: getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
ifnull 4
iconst_1
goto 5
StackMap locals: java.lang.Class
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 2
start local 2 6: iload 2
ifeq 7
iload 0
getstatic freemarker.log.Logger.libraryEnum:I
if_icmpeq 25
7: StackMap locals: int
StackMap stack:
iconst_1
invokestatic freemarker.log.Logger.ensureLoggerFactorySet:(Z)V
8: getstatic freemarker.log.Logger.initializedFromSystemProperty:Z
ifeq 9
getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
ifnonnull 19
9: StackMap locals:
StackMap stack:
getstatic freemarker.log.Logger.libraryEnum:I
istore 3
start local 3 10: iload 0
invokestatic freemarker.log.Logger.setLibrary:(I)V
11: getstatic freemarker.log.Logger.loggersByCategory:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
12: iload 2
ifeq 25
13: new java.lang.StringBuilder
dup
ldc "Logger library was already set earlier to \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: iload 3
invokestatic freemarker.log.Logger.getLibraryName:(I)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;
15: ldc "change to \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 0
invokestatic freemarker.log.Logger.getLibraryName:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" won't effect loggers created "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc "earlier."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic freemarker.log.Logger.logWarnInLogger:(Ljava/lang/String;)V
end local 3 18: goto 25
StackMap locals:
StackMap stack:
19: iload 0
getstatic freemarker.log.Logger.libraryEnum:I
if_icmpeq 25
20: new java.lang.StringBuilder
dup
ldc "Ignored "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc Lfreemarker/log/Logger;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".selectLoggerLibrary(\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: iload 0
invokestatic freemarker.log.Logger.getLibraryName:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc "\") call, because the \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "org.freemarker.loggerLibrary"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: ldc "\" system property is set to \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic freemarker.log.Logger.libraryEnum:I
invokestatic freemarker.log.Logger.getLibraryName:(I)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;
24: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic freemarker.log.Logger.logWarnInLogger:(Ljava/lang/String;)V
end local 2 25: StackMap locals:
StackMap stack:
aload 1
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 1
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 libraryEnum I
6 25 2 loggerFactoryWasAlreadySet Z
10 18 3 replacedLibraryEnum I
Exception table:
from to target type
3 26 27 any
27 28 27 any
Exceptions:
throws java.lang.ClassNotFoundException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
libraryEnum
public static void setCategoryPrefix(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: ldc Lfreemarker/log/Logger;
dup
astore 1
monitorenter
1: aload 0
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
aload 0
putstatic freemarker.log.Logger.categoryPrefix:Ljava/lang/String;
4: aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 prefix Ljava/lang/String;
Exception table:
from to target type
1 5 6 any
6 7 6 any
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
prefix
public abstract void debug(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
public abstract void debug(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
t
public abstract void info(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
public abstract void info(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
t
public abstract void warn(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
public abstract void warn(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
t
public abstract void error(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
public abstract void error(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
message
t
public abstract boolean isDebugEnabled();
descriptor: ()Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract boolean isInfoEnabled();
descriptor: ()Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract boolean isWarnEnabled();
descriptor: ()Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract boolean isErrorEnabled();
descriptor: ()Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract boolean isFatalEnabled();
descriptor: ()Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public static freemarker.log.Logger getLogger(java.lang.String);
descriptor: (Ljava/lang/String;)Lfreemarker/log/Logger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic freemarker.log.Logger.categoryPrefix:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifeq 2
1: new java.lang.StringBuilder
dup
getstatic freemarker.log.Logger.categoryPrefix:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0
2: StackMap locals:
StackMap stack:
getstatic freemarker.log.Logger.loggersByCategory:Ljava/util/Map;
dup
astore 1
monitorenter
3: getstatic freemarker.log.Logger.loggersByCategory:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast freemarker.log.Logger
astore 2
start local 2 4: aload 2
ifnonnull 8
5: iconst_0
invokestatic freemarker.log.Logger.ensureLoggerFactorySet:(Z)V
6: getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
aload 0
invokeinterface freemarker.log.LoggerFactory.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
astore 2
7: getstatic freemarker.log.Logger.loggersByCategory:Ljava/util/Map;
aload 0
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: StackMap locals: java.util.Map freemarker.log.Logger
StackMap stack:
aload 2
aload 1
monitorexit
9: areturn
end local 2 10: StackMap locals: java.lang.String java.util.Map
StackMap stack: java.lang.Throwable
aload 1
monitorexit
11: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 category Ljava/lang/String;
4 10 2 logger Lfreemarker/log/Logger;
Exception table:
from to target type
3 9 10 any
10 11 10 any
MethodParameters:
Name Flags
category
private static void ensureLoggerFactorySet(boolean);
descriptor: (Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
ifnull 1
return
1: StackMap locals:
StackMap stack:
ldc Lfreemarker/log/Logger;
dup
astore 1
monitorenter
2: getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
ifnull 4
aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Class
StackMap stack:
ldc "org.freemarker.loggerLibrary"
invokestatic freemarker.log.Logger.getSystemProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 5: aload 2
ifnull 24
6: aload 2
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 2
7: iconst_0
istore 4
start local 4 8: iconst_m1
istore 5
start local 5 9: StackMap locals: int java.lang.Class java.lang.String top int int
StackMap stack:
aload 2
iload 5
invokestatic freemarker.log.Logger.getLibraryName:(I)Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 12
10: iconst_1
istore 4
11: goto 13
12: StackMap locals:
StackMap stack:
iinc 5 1
13: StackMap locals:
StackMap stack:
iload 5
iconst_5
if_icmpgt 14
iload 4
ifeq 9
14: StackMap locals:
StackMap stack:
iload 4
ifne 20
15: new java.lang.StringBuilder
dup
ldc "Ignored invalid \"org.freemarker.loggerLibrary\" system property value: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
16: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic freemarker.log.Logger.logWarnInLogger:(Ljava/lang/String;)V
18: iload 0
ifeq 20
aload 1
monitorexit
19: return
20: StackMap locals:
StackMap stack:
iload 4
ifeq 21
iload 5
goto 22
StackMap locals:
StackMap stack:
21: iconst_m1
StackMap locals:
StackMap stack: int
22: istore 3
end local 5 end local 4 start local 3 23: goto 27
end local 3 24: StackMap locals: int java.lang.Class java.lang.String
StackMap stack:
iload 0
ifeq 26
aload 1
monitorexit
25: return
26: StackMap locals:
StackMap stack:
iconst_m1
istore 3
start local 3 27: StackMap locals: int
StackMap stack:
iload 3
invokestatic freemarker.log.Logger.setLibrary:(I)V
28: aload 2
ifnull 47
29: iconst_1
putstatic freemarker.log.Logger.initializedFromSystemProperty:Z
30: goto 47
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 4
start local 4 32: iload 0
ifeq 33
aload 2
ifnull 33
iconst_0
goto 34
StackMap locals: java.lang.Throwable
StackMap stack:
33: iconst_1
StackMap locals:
StackMap stack: int
34: istore 5
start local 5 35: new java.lang.StringBuilder
dup
ldc "Couldn't set up logger for \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokestatic freemarker.log.Logger.getLibraryName:(I)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;
36: iload 5
ifeq 37
ldc "; logging disabled"
goto 38
StackMap locals: int java.lang.Class java.lang.String int java.lang.Throwable int
StackMap stack: java.lang.StringBuilder
37: ldc "."
StackMap locals: int java.lang.Class java.lang.String int java.lang.Throwable int
StackMap stack: java.lang.StringBuilder java.lang.String
38: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: aload 4
41: invokestatic freemarker.log.Logger.logErrorInLogger:(Ljava/lang/String;Ljava/lang/Throwable;)V
42: iload 5
ifeq 47
43: iconst_0
invokestatic freemarker.log.Logger.setLibrary:(I)V
44: goto 47
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
45: astore 6
start local 6 46: new java.lang.RuntimeException
dup
ldc "Bug"
aload 6
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 47: StackMap locals: int java.lang.Class
StackMap stack:
aload 1
monitorexit
48: goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
49: aload 1
monitorexit
50: athrow
51: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 onlyIfCanBeSetFromSysProp Z
5 47 2 sysPropVal Ljava/lang/String;
23 24 3 libraryEnum I
27 47 3 libraryEnum I
8 23 4 foundMatch Z
9 23 5 matchedEnum I
32 47 4 e Ljava/lang/Throwable;
35 47 5 disableLogging Z
46 47 6 e2 Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
27 30 31 Class java.lang.Throwable
43 44 45 Class java.lang.ClassNotFoundException
2 3 49 any
4 19 49 any
20 25 49 any
26 48 49 any
49 50 49 any
MethodParameters:
Name Flags
onlyIfCanBeSetFromSysProp
private static freemarker.log.LoggerFactory createLoggerFactory(int);
descriptor: (I)Lfreemarker/log/LoggerFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iload 0
iconst_m1
if_icmpne 19
1: iconst_5
istore 1
start local 1 2: goto 16
3: StackMap locals: int
StackMap stack:
iload 1
invokestatic freemarker.log.Logger.isAutoDetected:(I)Z
ifne 4
goto 15
4: StackMap locals:
StackMap stack:
iload 1
iconst_3
if_icmpne 6
invokestatic freemarker.log.Logger.hasLog4LibraryThatDelegatesToWorkingSLF4J:()Z
ifeq 6
5: iconst_5
istore 1
6: StackMap locals:
StackMap stack:
iload 1
invokestatic freemarker.log.Logger.createLoggerFactoryForNonAuto:(I)Lfreemarker/log/LoggerFactory;
7: areturn
8: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
goto 15
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 10: new java.lang.StringBuilder
dup
ldc "Unexpected error when initializing logging for \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: iload 1
invokestatic freemarker.log.Logger.getLibraryName:(I)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;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: aload 2
14: invokestatic freemarker.log.Logger.logErrorInLogger:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 15: StackMap locals:
StackMap stack:
iinc 1 -1
StackMap locals:
StackMap stack:
16: iload 1
iconst_m1
if_icmpge 3
end local 1 17: ldc "Auto detecton couldn't set up any logger libraries; FreeMarker logging suppressed."
invokestatic freemarker.log.Logger.logWarnInLogger:(Ljava/lang/String;)V
18: new freemarker.log._NullLoggerFactory
dup
invokespecial freemarker.log._NullLoggerFactory.<init>:()V
areturn
19: StackMap locals:
StackMap stack:
iload 0
invokestatic freemarker.log.Logger.createLoggerFactoryForNonAuto:(I)Lfreemarker/log/LoggerFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 libraryEnum I
2 17 1 libraryEnumToTry I
10 15 2 e Ljava/lang/Throwable;
Exception table:
from to target type
6 7 8 Class java.lang.ClassNotFoundException
6 7 9 Class java.lang.Throwable
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
libraryEnum
private static freemarker.log.LoggerFactory createLoggerFactoryForNonAuto(int);
descriptor: (I)Lfreemarker/log/LoggerFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: iload 0
invokestatic freemarker.log.Logger.getAvailabilityCheckClassName:(I)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 12
2: aload 1
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
pop
3: iload 0
invokestatic freemarker.log.Logger.getLibraryName:(I)Ljava/lang/String;
astore 2
start local 2 4: new java.lang.StringBuilder
dup
ldc "freemarker.log._"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "LoggerFactory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
6: invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast freemarker.log.LoggerFactory
7: areturn
8: StackMap locals: int java.lang.String java.lang.String
StackMap stack: java.lang.Exception
astore 3
start local 3 9: new java.lang.RuntimeException
dup
10: new java.lang.StringBuilder
dup
ldc "Unexpected error when creating logger factory for \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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 3
11: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 12: StackMap locals:
StackMap stack:
iload 0
iconst_1
if_icmpne 14
13: new freemarker.log._JULLoggerFactory
dup
invokespecial freemarker.log._JULLoggerFactory.<init>:()V
areturn
14: StackMap locals:
StackMap stack:
iload 0
ifne 16
15: new freemarker.log._NullLoggerFactory
dup
invokespecial freemarker.log._NullLoggerFactory.<init>:()V
areturn
16: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Bug"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 libraryEnum I
1 17 1 availabilityCheckClassName Ljava/lang/String;
4 12 2 libraryName Ljava/lang/String;
9 12 3 e Ljava/lang/Exception;
Exception table:
from to target type
4 7 8 Class java.lang.Exception
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
libraryEnum
private static boolean hasLog4LibraryThatDelegatesToWorkingSLF4J();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: iconst_3
invokestatic freemarker.log.Logger.getAvailabilityCheckClassName:(I)Ljava/lang/String;
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
pop
1: iconst_5
invokestatic freemarker.log.Logger.getAvailabilityCheckClassName:(I)Ljava/lang/String;
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
pop
2: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
3: pop
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
ldc "org.apache.log4j.FileAppender"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
pop
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
8: ldc "freemarker.log._Log4jOverSLF4JTester"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
9: ldc "test"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
aconst_null
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
10: astore 0
start local 0 11: aload 0
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
12: ireturn
end local 0 13: StackMap locals:
StackMap stack: java.lang.Throwable
pop
14: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
11 13 0 r Ljava/lang/Object;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
5 6 7 Class java.lang.ClassNotFoundException
8 12 13 Class java.lang.Throwable
private static synchronized void setLibrary(int);
descriptor: (I)V
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
invokestatic freemarker.log.Logger.createLoggerFactory:(I)Lfreemarker/log/LoggerFactory;
putstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
1: iload 0
putstatic freemarker.log.Logger.libraryEnum:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 libraryEnum I
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
libraryEnum
private static void logWarnInLogger(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iconst_0
aload 0
aconst_null
invokestatic freemarker.log.Logger.logInLogger:(ZLjava/lang/String;Ljava/lang/Throwable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 message Ljava/lang/String;
MethodParameters:
Name Flags
message
private static void logErrorInLogger(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
aload 0
aload 1
invokestatic freemarker.log.Logger.logInLogger:(ZLjava/lang/String;Ljava/lang/Throwable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 message Ljava/lang/String;
0 2 1 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
message
exception
private static void logInLogger(boolean, java.lang.String, java.lang.Throwable);
descriptor: (ZLjava/lang/String;Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: ldc Lfreemarker/log/Logger;
dup
astore 4
monitorenter
1: getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
ifnull 2
getstatic freemarker.log.Logger.loggerFactory:Lfreemarker/log/LoggerFactory;
instanceof freemarker.log._NullLoggerFactory
ifne 2
iconst_1
goto 3
StackMap locals: int java.lang.String java.lang.Throwable top java.lang.Class
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: aload 4
monitorexit
5: goto 8
end local 3 StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 4
monitorexit
7: athrow
start local 3 8: StackMap locals: int java.lang.String java.lang.Throwable int
StackMap stack:
iload 3
ifeq 17
9: ldc "freemarker.logger"
invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
astore 4
start local 4 10: iload 0
ifeq 13
11: aload 4
aload 1
invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;)V
12: goto 17
13: StackMap locals: freemarker.log.Logger
StackMap stack:
aload 4
aload 1
invokevirtual freemarker.log.Logger.warn:(Ljava/lang/String;)V
end local 4 14: goto 17
StackMap locals: int java.lang.String java.lang.Throwable int
StackMap stack: java.lang.Throwable
15: pop
16: iconst_0
istore 3
17: StackMap locals:
StackMap stack:
iload 3
ifne 30
18: getstatic java.lang.System.err:Ljava/io/PrintStream;
19: new java.lang.StringBuilder
dup
iload 0
ifeq 20
ldc "ERROR"
goto 21
StackMap locals: int java.lang.String java.lang.Throwable int
StackMap stack: java.io.PrintStream new 19 new 19
20: ldc "WARN"
StackMap locals: int java.lang.String java.lang.Throwable int
StackMap stack: java.io.PrintStream new 19 new 19 java.lang.String
21: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc Lfreemarker/log/LoggerFactory;
invokevirtual java.lang.Class.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;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: aload 2
ifnull 30
25: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\tException: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokestatic freemarker.log.Logger.tryToString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: goto 29
27: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 2
28: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\tCaused by: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokestatic freemarker.log.Logger.tryToString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
ifnonnull 27
30: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 error Z
0 31 1 message Ljava/lang/String;
0 31 2 exception Ljava/lang/Throwable;
4 6 3 canUseRealLogger Z
8 31 3 canUseRealLogger Z
10 14 4 logger Lfreemarker/log/Logger;
Exception table:
from to target type
1 5 6 any
6 7 6 any
9 14 15 Class java.lang.Throwable
MethodParameters:
Name Flags
error
message
exception
private static java.lang.String getSystemProperty(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new freemarker.log.Logger$1
dup
aload 0
invokespecial freemarker.log.Logger$1.<init>:(Ljava/lang/String;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
2: areturn
3: StackMap locals:
StackMap stack: java.security.AccessControlException
pop
4: new java.lang.StringBuilder
dup
ldc "Insufficient permissions to read system property \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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;
invokestatic freemarker.log.Logger.logWarnInLogger:(Ljava/lang/String;)V
5: aconst_null
areturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 7: new java.lang.StringBuilder
dup
ldc "Failed to read system property \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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 1
invokestatic freemarker.log.Logger.logErrorInLogger:(Ljava/lang/String;Ljava/lang/Throwable;)V
8: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 key Ljava/lang/String;
7 9 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.security.AccessControlException
0 2 6 Class java.lang.Throwable
MethodParameters:
Name Flags
key final
private static java.lang.String tryToString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
pop
4: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 object Ljava/lang/Object;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
MethodParameters:
Name Flags
object
}
SourceFile: "Logger.java"
NestMembers:
freemarker.log.Logger$1
InnerClasses:
freemarker.log.Logger$1