public final class org.slf4j.LoggerFactory
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.slf4j.LoggerFactory
super_class: java.lang.Object
{
static final java.lang.String CODES_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html"
static final java.lang.String NO_STATICLOGGERBINDER_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#StaticLoggerBinder"
static final java.lang.String MULTIPLE_BINDINGS_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#multiple_bindings"
static final java.lang.String NULL_LF_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#null_LF"
static final java.lang.String VERSION_MISMATCH;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#version_mismatch"
static final java.lang.String SUBSTITUTE_LOGGER_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#substituteLogger"
static final java.lang.String LOGGER_NAME_MISMATCH_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#loggerNameMismatch"
static final java.lang.String REPLAY_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#replay"
static final java.lang.String UNSUCCESSFUL_INIT_URL;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "http://www.slf4j.org/codes.html#unsuccessfulInit"
static final java.lang.String UNSUCCESSFUL_INIT_MSG;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "org.slf4j.LoggerFactory in failed state. Original exception was thrown EARLIER. See also http://www.slf4j.org/codes.html#unsuccessfulInit"
static final int UNINITIALIZED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int ONGOING_INITIALIZATION;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int FAILED_INITIALIZATION;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int SUCCESSFUL_INITIALIZATION;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int NOP_FALLBACK_INITIALIZATION;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static volatile int INITIALIZATION_STATE;
descriptor: I
flags: (0x0048) ACC_STATIC, ACC_VOLATILE
static final org.slf4j.helpers.SubstituteLoggerFactory SUBST_FACTORY;
descriptor: Lorg/slf4j/helpers/SubstituteLoggerFactory;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final org.slf4j.helpers.NOPLoggerFactory NOP_FALLBACK_FACTORY;
descriptor: Lorg/slf4j/helpers/NOPLoggerFactory;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.String DETECT_LOGGER_NAME_MISMATCH_PROPERTY;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "slf4j.detectLoggerNameMismatch"
static final java.lang.String JAVA_VENDOR_PROPERTY;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "java.vendor.url"
static boolean DETECT_LOGGER_NAME_MISMATCH;
descriptor: Z
flags: (0x0008) ACC_STATIC
private static final java.lang.String[] API_COMPATIBILITY_LIST;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.lang.String STATIC_LOGGER_BINDER_PATH;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_0
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
1: new org.slf4j.helpers.SubstituteLoggerFactory
dup
invokespecial org.slf4j.helpers.SubstituteLoggerFactory.<init>:()V
putstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
2: new org.slf4j.helpers.NOPLoggerFactory
dup
invokespecial org.slf4j.helpers.NOPLoggerFactory.<init>:()V
putstatic org.slf4j.LoggerFactory.NOP_FALLBACK_FACTORY:Lorg/slf4j/helpers/NOPLoggerFactory;
3: ldc "slf4j.detectLoggerNameMismatch"
invokestatic org.slf4j.helpers.Util.safeGetBooleanSystemProperty:(Ljava/lang/String;)Z
putstatic org.slf4j.LoggerFactory.DETECT_LOGGER_NAME_MISMATCH:Z
4: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "1.6"
aastore
dup
iconst_1
ldc "1.7"
aastore
putstatic org.slf4j.LoggerFactory.API_COMPATIBILITY_LIST:[Ljava/lang/String;
5: ldc "org/slf4j/impl/StaticLoggerBinder.class"
putstatic org.slf4j.LoggerFactory.STATIC_LOGGER_BINDER_PATH:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/slf4j/LoggerFactory;
static void reset();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
1: return
LocalVariableTable:
Start End Slot Name Signature
private static final void performInitialization();
descriptor: ()V
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=0, args_size=0
0: invokestatic org.slf4j.LoggerFactory.bind:()V
1: getstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
iconst_3
if_icmpne 3
2: invokestatic org.slf4j.LoggerFactory.versionSanityCheck:()V
3: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
private static boolean messageContainsOrgSlf4jImplStaticLoggerBinder(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
ldc "org/slf4j/impl/StaticLoggerBinder"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
ldc "org.slf4j.impl.StaticLoggerBinder"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
private static final void bind();
descriptor: ()V
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=0
0: aconst_null
astore 0
start local 0 1: invokestatic org.slf4j.LoggerFactory.isAndroid:()Z
ifne 4
2: invokestatic org.slf4j.LoggerFactory.findPossibleStaticLoggerBinderPathSet:()Ljava/util/Set;
astore 0
3: aload 0
invokestatic org.slf4j.LoggerFactory.reportMultipleBindingAmbiguity:(Ljava/util/Set;)V
4: StackMap locals: java.util.Set
StackMap stack:
invokestatic org.slf4j.impl.StaticLoggerBinder.getSingleton:()Lorg/slf4j/impl/StaticLoggerBinder;
pop
5: iconst_3
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
6: aload 0
invokestatic org.slf4j.LoggerFactory.reportActualBinding:(Ljava/util/Set;)V
7: invokestatic org.slf4j.LoggerFactory.fixSubstituteLoggers:()V
8: invokestatic org.slf4j.LoggerFactory.replayEvents:()V
9: getstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
invokevirtual org.slf4j.helpers.SubstituteLoggerFactory.clear:()V
end local 0 10: goto 32
StackMap locals:
StackMap stack: java.lang.NoClassDefFoundError
11: astore 0
start local 0 12: aload 0
invokevirtual java.lang.NoClassDefFoundError.getMessage:()Ljava/lang/String;
astore 1
start local 1 13: aload 1
invokestatic org.slf4j.LoggerFactory.messageContainsOrgSlf4jImplStaticLoggerBinder:(Ljava/lang/String;)Z
ifeq 19
14: iconst_4
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
15: ldc "Failed to load class \"org.slf4j.impl.StaticLoggerBinder\"."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
16: ldc "Defaulting to no-operation (NOP) logger implementation"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
17: ldc "See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
18: goto 32
19: StackMap locals: java.lang.NoClassDefFoundError java.lang.String
StackMap stack:
aload 0
invokestatic org.slf4j.LoggerFactory.failedBinding:(Ljava/lang/Throwable;)V
20: aload 0
athrow
end local 1 end local 0 21: StackMap locals:
StackMap stack: java.lang.NoSuchMethodError
astore 0
start local 0 22: aload 0
invokevirtual java.lang.NoSuchMethodError.getMessage:()Ljava/lang/String;
astore 1
start local 1 23: aload 1
ifnull 28
aload 1
ldc "org.slf4j.impl.StaticLoggerBinder.getSingleton()"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 28
24: iconst_2
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
25: ldc "slf4j-api 1.6.x (or later) is incompatible with this binding."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
26: ldc "Your binding is version 1.5.5 or earlier."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
27: ldc "Upgrade your binding to version 1.6.x."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
28: StackMap locals: java.lang.NoSuchMethodError java.lang.String
StackMap stack:
aload 0
athrow
end local 1 end local 0 29: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 30: aload 0
invokestatic org.slf4j.LoggerFactory.failedBinding:(Ljava/lang/Throwable;)V
31: new java.lang.IllegalStateException
dup
ldc "Unexpected initialization failure"
aload 0
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 32: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
1 10 0 staticLoggerBinderPathSet Ljava/util/Set<Ljava/net/URL;>;
12 21 0 ncde Ljava/lang/NoClassDefFoundError;
13 21 1 msg Ljava/lang/String;
22 29 0 nsme Ljava/lang/NoSuchMethodError;
23 29 1 msg Ljava/lang/String;
30 32 0 e Ljava/lang/Exception;
Exception table:
from to target type
0 10 11 Class java.lang.NoClassDefFoundError
0 10 21 Class java.lang.NoSuchMethodError
0 10 29 Class java.lang.Exception
private static void fixSubstituteLoggers();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=0
0: getstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
dup
astore 0
monitorenter
1: getstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
invokevirtual org.slf4j.helpers.SubstituteLoggerFactory.postInitialization:()V
2: getstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
invokevirtual org.slf4j.helpers.SubstituteLoggerFactory.getLoggers:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: org.slf4j.helpers.SubstituteLoggerFactory top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.slf4j.helpers.SubstituteLogger
astore 1
start local 1 4: aload 1
invokevirtual org.slf4j.helpers.SubstituteLogger.getName:()Ljava/lang/String;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/String;)Lorg/slf4j/Logger;
astore 3
start local 3 5: aload 1
aload 3
invokevirtual org.slf4j.helpers.SubstituteLogger.setDelegate:(Lorg/slf4j/Logger;)V
end local 3 end local 1 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aload 0
monitorexit
8: goto 11
StackMap locals: org.slf4j.helpers.SubstituteLoggerFactory
StackMap stack: java.lang.Throwable
9: aload 0
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
4 6 1 substLogger Lorg/slf4j/helpers/SubstituteLogger;
5 6 3 logger Lorg/slf4j/Logger;
Exception table:
from to target type
1 8 9 any
9 10 9 any
static void failedBinding(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iconst_2
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
1: ldc "Failed to instantiate SLF4J LoggerFactory"
aload 0
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;Ljava/lang/Throwable;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private static void replayEvents();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=0
0: getstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
invokevirtual org.slf4j.helpers.SubstituteLoggerFactory.getEventQueue:()Ljava/util/concurrent/LinkedBlockingQueue;
astore 0
start local 0 1: aload 0
invokevirtual java.util.concurrent.LinkedBlockingQueue.size:()I
istore 1
start local 1 2: iconst_0
istore 2
start local 2 3: new java.util.ArrayList
dup
sipush 128
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 4: StackMap locals: java.util.concurrent.LinkedBlockingQueue int int java.util.List
StackMap stack:
aload 0
aload 3
sipush 128
invokevirtual java.util.concurrent.LinkedBlockingQueue.drainTo:(Ljava/util/Collection;I)I
istore 4
start local 4 5: iload 4
ifne 7
6: goto 15
7: StackMap locals: int
StackMap stack:
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: java.util.concurrent.LinkedBlockingQueue int int java.util.List int top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.slf4j.event.SubstituteLoggingEvent
astore 5
start local 5 9: aload 5
invokestatic org.slf4j.LoggerFactory.replaySingleEvent:(Lorg/slf4j/event/SubstituteLoggingEvent;)V
10: iload 2
iinc 2 1
ifne 12
11: aload 5
iload 1
invokestatic org.slf4j.LoggerFactory.emitReplayOrSubstituionWarning:(Lorg/slf4j/event/SubstituteLoggingEvent;I)V
end local 5 12: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: aload 3
invokeinterface java.util.List.clear:()V
end local 4 14: goto 4
15: StackMap locals: java.util.concurrent.LinkedBlockingQueue int int java.util.List
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 16 0 queue Ljava/util/concurrent/LinkedBlockingQueue<Lorg/slf4j/event/SubstituteLoggingEvent;>;
2 16 1 queueSize I
3 16 2 count I
4 16 3 eventList Ljava/util/List<Lorg/slf4j/event/SubstituteLoggingEvent;>;
5 14 4 numDrained I
9 12 5 event Lorg/slf4j/event/SubstituteLoggingEvent;
private static void emitReplayOrSubstituionWarning(org.slf4j.event.SubstituteLoggingEvent, int);
descriptor: (Lorg/slf4j/event/SubstituteLoggingEvent;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.slf4j.event.SubstituteLoggingEvent.getLogger:()Lorg/slf4j/helpers/SubstituteLogger;
invokevirtual org.slf4j.helpers.SubstituteLogger.isDelegateEventAware:()Z
ifeq 3
1: iload 1
invokestatic org.slf4j.LoggerFactory.emitReplayWarning:(I)V
2: goto 5
StackMap locals:
StackMap stack:
3: aload 0
invokevirtual org.slf4j.event.SubstituteLoggingEvent.getLogger:()Lorg/slf4j/helpers/SubstituteLogger;
invokevirtual org.slf4j.helpers.SubstituteLogger.isDelegateNOP:()Z
ifne 5
4: invokestatic org.slf4j.LoggerFactory.emitSubstitutionWarning:()V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 event Lorg/slf4j/event/SubstituteLoggingEvent;
0 6 1 queueSize I
MethodParameters:
Name Flags
event
queueSize
private static void replaySingleEvent(org.slf4j.event.SubstituteLoggingEvent);
descriptor: (Lorg/slf4j/event/SubstituteLoggingEvent;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.slf4j.event.SubstituteLoggingEvent.getLogger:()Lorg/slf4j/helpers/SubstituteLogger;
astore 1
start local 1 3: aload 1
invokevirtual org.slf4j.helpers.SubstituteLogger.getName:()Ljava/lang/String;
astore 2
start local 2 4: aload 1
invokevirtual org.slf4j.helpers.SubstituteLogger.isDelegateNull:()Z
ifeq 6
5: new java.lang.IllegalStateException
dup
ldc "Delegate logger cannot be null at this state."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.slf4j.helpers.SubstituteLogger java.lang.String
StackMap stack:
aload 1
invokevirtual org.slf4j.helpers.SubstituteLogger.isDelegateNOP:()Z
ifne 11
7: aload 1
invokevirtual org.slf4j.helpers.SubstituteLogger.isDelegateEventAware:()Z
ifeq 10
8: aload 1
aload 0
invokevirtual org.slf4j.helpers.SubstituteLogger.log:(Lorg/slf4j/event/LoggingEvent;)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 2
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 event Lorg/slf4j/event/SubstituteLoggingEvent;
3 12 1 substLogger Lorg/slf4j/helpers/SubstituteLogger;
4 12 2 loggerName Ljava/lang/String;
MethodParameters:
Name Flags
event
private static void emitSubstitutionWarning();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "The following set of substitute loggers may have been accessed"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
1: ldc "during the initialization phase. Logging calls during this"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
2: ldc "phase were not honored. However, subsequent logging calls to these"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
3: ldc "loggers will work as normally expected."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
4: ldc "See also http://www.slf4j.org/codes.html#substituteLogger"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
5: return
LocalVariableTable:
Start End Slot Name Signature
private static void emitReplayWarning(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "A number ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") of logging calls during the initialization phase have been intercepted and are"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
1: ldc "now being replayed. These are subject to the filtering rules of the underlying logging system."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
2: ldc "See also http://www.slf4j.org/codes.html#replay"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 eventCount I
MethodParameters:
Name Flags
eventCount
private static final void versionSanityCheck();
descriptor: ()V
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=6, args_size=0
0: getstatic org.slf4j.impl.StaticLoggerBinder.REQUESTED_API_VERSION:Ljava/lang/String;
astore 0
start local 0 1: iconst_0
istore 1
start local 1 2: getstatic org.slf4j.LoggerFactory.API_COMPATIBILITY_LIST:[Ljava/lang/String;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: java.lang.String int top int int java.lang.String[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 0
aload 2
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 6
5: iconst_1
istore 1
end local 2 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 3
8: iload 1
ifne 17
9: new java.lang.StringBuilder
dup
ldc "The requested version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " by your slf4j binding is not compatible with "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: getstatic org.slf4j.LoggerFactory.API_COMPATIBILITY_LIST:[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
12: ldc "See http://www.slf4j.org/codes.html#version_mismatch for further details."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
end local 1 end local 0 13: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
14: pop
goto 17
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 0
start local 0 16: ldc "Unexpected problem occured during version sanity check"
aload 0
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 0 17: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
1 13 0 requested Ljava/lang/String;
2 13 1 match Z
4 6 2 aAPI_COMPATIBILITY_LIST Ljava/lang/String;
16 17 0 e Ljava/lang/Throwable;
Exception table:
from to target type
0 13 14 Class java.lang.NoSuchFieldError
0 13 15 Class java.lang.Throwable
static java.util.Set<java.net.URL> findPossibleStaticLoggerBinderPathSet();
descriptor: ()Ljava/util/Set;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=0
0: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 0
start local 0 1: ldc Lorg/slf4j/LoggerFactory;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 2: aload 1
ifnonnull 5
3: getstatic org.slf4j.LoggerFactory.STATIC_LOGGER_BINDER_PATH:Ljava/lang/String;
invokestatic java.lang.ClassLoader.getSystemResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 2
start local 2 4: goto 9
end local 2 5: StackMap locals: java.util.Set java.lang.ClassLoader
StackMap stack:
aload 1
getstatic org.slf4j.LoggerFactory.STATIC_LOGGER_BINDER_PATH:Ljava/lang/String;
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 2
start local 2 6: goto 9
7: StackMap locals: java.util.Enumeration
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.net.URL
astore 3
start local 3 8: aload 0
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 3 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 7
end local 2 end local 1 10: goto 13
StackMap locals: java.util.Set
StackMap stack: java.io.IOException
11: astore 1
start local 1 12: ldc "Error getting resources from path"
aload 1
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 13: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 14 0 staticLoggerBinderPathSet Ljava/util/Set<Ljava/net/URL;>;
2 10 1 loggerFactoryClassLoader Ljava/lang/ClassLoader;
4 5 2 paths Ljava/util/Enumeration<Ljava/net/URL;>;
6 10 2 paths Ljava/util/Enumeration<Ljava/net/URL;>;
8 9 3 path Ljava/net/URL;
12 13 1 ioe Ljava/io/IOException;
Exception table:
from to target type
1 10 11 Class java.io.IOException
Signature: ()Ljava/util/Set<Ljava/net/URL;>;
private static boolean isAmbiguousStaticLoggerBinderPathSet(java.util.Set<java.net.URL>);
descriptor: (Ljava/util/Set;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Set.size:()I
iconst_1
if_icmple 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 binderPathSet Ljava/util/Set<Ljava/net/URL;>;
Signature: (Ljava/util/Set<Ljava/net/URL;>;)Z
MethodParameters:
Name Flags
binderPathSet
private static void reportMultipleBindingAmbiguity(java.util.Set<java.net.URL>);
descriptor: (Ljava/util/Set;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokestatic org.slf4j.LoggerFactory.isAmbiguousStaticLoggerBinderPathSet:(Ljava/util/Set;)Z
ifeq 7
1: ldc "Class path contains multiple SLF4J bindings."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
2: aload 0
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: java.util.Set top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.URL
astore 1
start local 1 4: new java.lang.StringBuilder
dup
ldc "Found binding in ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: ldc "See http://www.slf4j.org/codes.html#multiple_bindings for an explanation."
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
7: StackMap locals: java.util.Set
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 binderPathSet Ljava/util/Set<Ljava/net/URL;>;
4 5 1 path Ljava/net/URL;
Signature: (Ljava/util/Set<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
binderPathSet
private static boolean isAndroid();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "java.vendor.url"
invokestatic org.slf4j.helpers.Util.safeGetSystemProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
ldc "android"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 vendor Ljava/lang/String;
private static void reportActualBinding(java.util.Set<java.net.URL>);
descriptor: (Ljava/util/Set;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
aload 0
invokestatic org.slf4j.LoggerFactory.isAmbiguousStaticLoggerBinderPathSet:(Ljava/util/Set;)Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "Actual binding is of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic org.slf4j.impl.StaticLoggerBinder.getSingleton:()Lorg/slf4j/impl/StaticLoggerBinder;
invokevirtual org.slf4j.impl.StaticLoggerBinder.getLoggerFactoryClassStr:()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;
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 binderPathSet Ljava/util/Set<Ljava/net/URL;>;
Signature: (Ljava/util/Set<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
binderPathSet
public static org.slf4j.Logger getLogger(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/slf4j/Logger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic org.slf4j.LoggerFactory.getILoggerFactory:()Lorg/slf4j/ILoggerFactory;
astore 1
start local 1 1: aload 1
aload 0
invokeinterface org.slf4j.ILoggerFactory.getLogger:(Ljava/lang/String;)Lorg/slf4j/Logger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 name Ljava/lang/String;
1 2 1 iLoggerFactory Lorg/slf4j/ILoggerFactory;
MethodParameters:
Name Flags
name
public static org.slf4j.Logger getLogger(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lorg/slf4j/Logger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/String;)Lorg/slf4j/Logger;
astore 1
start local 1 1: getstatic org.slf4j.LoggerFactory.DETECT_LOGGER_NAME_MISMATCH:Z
ifeq 8
2: invokestatic org.slf4j.helpers.Util.getCallingClass:()Ljava/lang/Class;
astore 2
start local 2 3: aload 2
ifnull 8
aload 0
aload 2
invokestatic org.slf4j.LoggerFactory.nonMatchingClasses:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 8
4: ldc "Detected logger name mismatch. Given name: \"%s\"; computed name: \"%s\"."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokeinterface org.slf4j.Logger.getName:()Ljava/lang/String;
aastore
dup
iconst_1
5: aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
7: ldc "See http://www.slf4j.org/codes.html#loggerNameMismatch for an explanation"
invokestatic org.slf4j.helpers.Util.report:(Ljava/lang/String;)V
end local 2 8: StackMap locals: org.slf4j.Logger
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 clazz Ljava/lang/Class<*>;
1 9 1 logger Lorg/slf4j/Logger;
3 8 2 autoComputedCallingClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Lorg/slf4j/Logger;
MethodParameters:
Name Flags
clazz
private static boolean nonMatchingClasses(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 clazz Ljava/lang/Class<*>;
0 3 1 autoComputedCallingClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
autoComputedCallingClass
public static org.slf4j.ILoggerFactory getILoggerFactory();
descriptor: ()Lorg/slf4j/ILoggerFactory;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
ifne 9
1: ldc Lorg/slf4j/LoggerFactory;
dup
astore 0
monitorenter
2: getstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
ifne 5
3: iconst_1
putstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
4: invokestatic org.slf4j.LoggerFactory.performInitialization:()V
5: StackMap locals: java.lang.Class
StackMap stack:
aload 0
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 0
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
getstatic org.slf4j.LoggerFactory.INITIALIZATION_STATE:I
tableswitch { // 1 - 4
1: 13
2: 12
3: 10
4: 11
default: 14
}
10: StackMap locals:
StackMap stack:
invokestatic org.slf4j.impl.StaticLoggerBinder.getSingleton:()Lorg/slf4j/impl/StaticLoggerBinder;
invokevirtual org.slf4j.impl.StaticLoggerBinder.getLoggerFactory:()Lorg/slf4j/ILoggerFactory;
areturn
11: StackMap locals:
StackMap stack:
getstatic org.slf4j.LoggerFactory.NOP_FALLBACK_FACTORY:Lorg/slf4j/helpers/NOPLoggerFactory;
areturn
12: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "org.slf4j.LoggerFactory in failed state. Original exception was thrown EARLIER. See also http://www.slf4j.org/codes.html#unsuccessfulInit"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
getstatic org.slf4j.LoggerFactory.SUBST_FACTORY:Lorg/slf4j/helpers/SubstituteLoggerFactory;
areturn
14: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Unreachable code"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 6 7 any
7 8 7 any
}
SourceFile: "LoggerFactory.java"