public class org.apache.commons.logging.impl.LogFactoryImpl extends org.apache.commons.logging.LogFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.logging.impl.LogFactoryImpl
  super_class: org.apache.commons.logging.LogFactory
{
  private static final java.lang.String LOGGING_IMPL_LOG4J_LOGGER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.impl.Log4JLogger"

  private static final java.lang.String LOGGING_IMPL_JDK14_LOGGER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.impl.Jdk14Logger"

  private static final java.lang.String LOGGING_IMPL_LUMBERJACK_LOGGER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.impl.Jdk13LumberjackLogger"

  private static final java.lang.String LOGGING_IMPL_SIMPLE_LOGGER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.impl.SimpleLog"

  private static final java.lang.String PKG_IMPL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.impl."

  private static final int PKG_LEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String LOG_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.Log"

  protected static final java.lang.String LOG_PROPERTY_OLD;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.log"

  public static final java.lang.String ALLOW_FLAWED_CONTEXT_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.Log.allowFlawedContext"

  public static final java.lang.String ALLOW_FLAWED_DISCOVERY_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.Log.allowFlawedDiscovery"

  public static final java.lang.String ALLOW_FLAWED_HIERARCHY_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.logging.Log.allowFlawedHierarchy"

  private static final java.lang.String[] classesToDiscover;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private boolean useTCCL;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String diagnosticPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  protected java.util.Hashtable attributes;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0004) ACC_PROTECTED

  protected java.util.Hashtable instances;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0004) ACC_PROTECTED

  private java.lang.String logClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  protected java.lang.reflect.Constructor logConstructor;
    descriptor: Ljava/lang/reflect/Constructor;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.Class[] logConstructorSignature;
    descriptor: [Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.reflect.Method logMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.Class[] logMethodSignature;
    descriptor: [Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED

  private boolean allowFlawedContext;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean allowFlawedDiscovery;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean allowFlawedHierarchy;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 78
            ldc "org.apache.commons.logging.impl."
            invokevirtual java.lang.String.length:()I
            putstatic org.apache.commons.logging.impl.LogFactoryImpl.PKG_LEN:I
         1: .line 162
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 163
            ldc "org.apache.commons.logging.impl.Log4JLogger"
            aastore
            dup
            iconst_1
         3: .line 164
            ldc "org.apache.commons.logging.impl.Jdk14Logger"
            aastore
            dup
            iconst_2
         4: .line 165
            ldc "org.apache.commons.logging.impl.Jdk13LumberjackLogger"
            aastore
            dup
            iconst_3
         5: .line 166
            ldc "org.apache.commons.logging.impl.SimpleLog"
            aastore
         6: .line 162
            putstatic org.apache.commons.logging.impl.LogFactoryImpl.classesToDiscover:[Ljava/lang/String;
         7: .line 167
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 86
            aload 0 /* this */
            invokespecial org.apache.commons.logging.LogFactory.<init>:()V
         1: .line 175
            aload 0 /* this */
            iconst_1
            putfield org.apache.commons.logging.impl.LogFactoryImpl.useTCCL:Z
         2: .line 185
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
         3: .line 191
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.apache.commons.logging.impl.LogFactoryImpl.instances:Ljava/util/Hashtable;
         4: .line 205
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
         5: .line 210
            aload 0 /* this */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructorSignature:[Ljava/lang/Class;
         6: .line 216
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logMethod:Ljava/lang/reflect/Method;
         7: .line 221
            aload 0 /* this */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/apache/commons/logging/LogFactory;
            aastore
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logMethodSignature:[Ljava/lang/Class;
         8: .line 87
            aload 0 /* this */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.initDiagnostics:()V
         9: .line 88
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 11
        10: .line 89
            aload 0 /* this */
            ldc "Instance created."
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        11: .line 91
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl
      StackMap stack:
            return
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  public java.lang.Object getAttribute(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String name
         0: .line 247
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
            aload 1 /* name */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String[] getAttributeNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 256
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keySet:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  public org.apache.commons.logging.Log getInstance(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.Class clazz
         0: .line 269
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getInstance:(Ljava/lang/String;)Lorg/apache/commons/logging/Log;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    1     1  clazz  Ljava/lang/Class;
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
    MethodParameters:
       Name  Flags
      clazz  

  public org.apache.commons.logging.Log getInstance(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/commons/logging/Log;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String name
         0: .line 290
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.instances:Ljava/util/Hashtable;
            aload 1 /* name */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.logging.Log
            astore 2 /* instance */
        start local 2 // org.apache.commons.logging.Log instance
         1: .line 291
            aload 2 /* instance */
            ifnonnull 4
         2: .line 292
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.newInstance:(Ljava/lang/String;)Lorg/apache/commons/logging/Log;
            astore 2 /* instance */
         3: .line 293
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.instances:Ljava/util/Hashtable;
            aload 1 /* name */
            aload 2 /* instance */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 295
      StackMap locals: org.apache.commons.logging.Log
      StackMap stack:
            aload 2 /* instance */
            areturn
        end local 2 // org.apache.commons.logging.Log instance
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    5     1      name  Ljava/lang/String;
            1    5     2  instance  Lorg/apache/commons/logging/Log;
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
    MethodParameters:
      Name  Flags
      name  

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 308
            aload 0 /* this */
            ldc "Releasing all known loggers"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         1: .line 309
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.instances:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clear:()V
         2: .line 310
            return
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  public void removeAttribute(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String name
         0: .line 319
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
            aload 1 /* name */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 320
            return
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setAttribute(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object value
         0: .line 347
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
            ifnull 2
         1: .line 348
            aload 0 /* this */
            ldc "setAttribute: call too late; configuration already performed."
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         2: .line 351
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            ifnonnull 5
         3: .line 352
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
            aload 1 /* name */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 353
            goto 6
         5: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.attributes:Ljava/util/Hashtable;
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "use_tccl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 358
            aload 0 /* this */
            aload 2 /* value */
            ifnull 8
            aload 2 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack: org.apache.commons.logging.impl.LogFactoryImpl
         8: iconst_0
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.Object
      StackMap stack: org.apache.commons.logging.impl.LogFactoryImpl int
         9: putfield org.apache.commons.logging.impl.LogFactoryImpl.useTCCL:Z
        10: .line 360
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   11     1   name  Ljava/lang/String;
            0   11     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      name   
      value  

  protected static java.lang.ClassLoader getContextClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 375
            invokestatic org.apache.commons.logging.LogFactory.getContextClassLoader:()Ljava/lang/ClassLoader;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException

  protected static boolean isDiagnosticsEnabled();
    descriptor: ()Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 383
            invokestatic org.apache.commons.logging.LogFactory.isDiagnosticsEnabled:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static java.lang.ClassLoader getClassLoader(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/ClassLoader;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 392
            aload 0 /* clazz */
            invokestatic org.apache.commons.logging.LogFactory.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class;
    MethodParameters:
       Name  Flags
      clazz  

  private void initDiagnostics();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 419
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         1: .line 420
            aload 1 /* clazz */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 2 /* classLoader */
        start local 2 // java.lang.ClassLoader classLoader
         2: .line 423
            aload 2 /* classLoader */
            ifnonnull 5
         3: .line 424
            ldc "BOOTLOADER"
            astore 3 /* classLoaderName */
        start local 3 // java.lang.String classLoaderName
         4: .line 425
            goto 9
        end local 3 // java.lang.String classLoaderName
         5: .line 426
      StackMap locals: java.lang.Class java.lang.ClassLoader
      StackMap stack:
            aload 2 /* classLoader */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* classLoaderName */
        start local 3 // java.lang.String classLoaderName
         6: .line 428
            goto 9
        end local 3 // java.lang.String classLoaderName
      StackMap locals:
      StackMap stack: java.lang.SecurityException
         7: pop
         8: .line 429
            ldc "UNKNOWN"
            astore 3 /* classLoaderName */
        start local 3 // java.lang.String classLoaderName
         9: .line 431
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[LogFactoryImpl@"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* classLoaderName */
            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;
            putfield org.apache.commons.logging.impl.LogFactoryImpl.diagnosticPrefix:Ljava/lang/String;
        10: .line 432
            return
        end local 3 // java.lang.String classLoaderName
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.Class clazz
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            1   11     1            clazz  Ljava/lang/Class;
            2   11     2      classLoader  Ljava/lang/ClassLoader;
            4    5     3  classLoaderName  Ljava/lang/String;
            6    7     3  classLoaderName  Ljava/lang/String;
            9   11     3  classLoaderName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.SecurityException

  protected void logDiagnostic(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String msg
         0: .line 442
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 2
         1: .line 443
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.diagnosticPrefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.logRawDiagnostic:(Ljava/lang/String;)V
         2: .line 445
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String msg
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    3     1   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  protected java.lang.String getLogClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 455
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logClassName:Ljava/lang/String;
            ifnonnull 2
         1: .line 456
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation:(Ljava/lang/String;)Lorg/apache/commons/logging/Log;
            pop
         2: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logClassName:Ljava/lang/String;
            areturn
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  protected java.lang.reflect.Constructor getLogConstructor();
    descriptor: ()Ljava/lang/reflect/Constructor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 482
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
            ifnonnull 2
         1: .line 483
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation:(Ljava/lang/String;)Lorg/apache/commons/logging/Log;
            pop
         2: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
            areturn
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException

  protected boolean isJdk13LumberjackAvailable();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 496
            aload 0 /* this */
         1: .line 497
            ldc "Jdk13Lumberjack"
         2: .line 498
            ldc "org.apache.commons.logging.impl.Jdk13LumberjackLogger"
         3: .line 496
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.isLogLibraryAvailable:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  protected boolean isJdk14Available();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 511
            aload 0 /* this */
         1: .line 512
            ldc "Jdk14"
         2: .line 513
            ldc "org.apache.commons.logging.impl.Jdk14Logger"
         3: .line 511
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.isLogLibraryAvailable:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  protected boolean isLog4JAvailable();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 523
            aload 0 /* this */
         1: .line 524
            ldc "Log4J"
         2: .line 525
            ldc "org.apache.commons.logging.impl.Log4JLogger"
         3: .line 523
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.isLogLibraryAvailable:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  protected org.apache.commons.logging.Log newInstance(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/commons/logging/Log;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String name
         0: .line 540
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
            ifnonnull 3
         1: .line 541
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation:(Ljava/lang/String;)Lorg/apache/commons/logging/Log;
            astore 2 /* instance */
        start local 2 // org.apache.commons.logging.Log instance
         2: .line 542
            goto 5
        end local 2 // org.apache.commons.logging.Log instance
         3: .line 544
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* name */
            aastore
            astore 3 /* params */
        start local 3 // java.lang.Object[] params
         4: .line 545
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
            aload 3 /* params */
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.logging.Log
            astore 2 /* instance */
        end local 3 // java.lang.Object[] params
        start local 2 // org.apache.commons.logging.Log instance
         5: .line 548
      StackMap locals: org.apache.commons.logging.Log
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logMethod:Ljava/lang/reflect/Method;
            ifnull 8
         6: .line 549
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            astore 3 /* params */
        start local 3 // java.lang.Object[] params
         7: .line 550
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logMethod:Ljava/lang/reflect/Method;
            aload 2 /* instance */
            aload 3 /* params */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.Object[] params
         8: .line 553
      StackMap locals:
      StackMap stack:
            aload 2 /* instance */
         9: areturn
        end local 2 // org.apache.commons.logging.Log instance
        10: .line 555
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String
      StackMap stack: org.apache.commons.logging.LogConfigurationException
            astore 3 /* lce */
        start local 3 // org.apache.commons.logging.LogConfigurationException lce
        11: .line 560
            aload 3 /* lce */
            athrow
        end local 3 // org.apache.commons.logging.LogConfigurationException lce
        12: .line 562
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
        13: .line 565
            aload 3 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 4 /* c */
        start local 4 // java.lang.Throwable c
        14: .line 566
            new org.apache.commons.logging.LogConfigurationException
            dup
            aload 4 /* c */
            ifnonnull 15
            aload 3 /* e */
            goto 16
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String top java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack: new 14 new 14
        15: aload 4 /* c */
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String top java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack: new 14 new 14 java.lang.Throwable
        16: invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable c
        end local 3 // java.lang.reflect.InvocationTargetException e
        17: .line 567
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
        18: .line 568
            aload 3 /* t */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.handleThrowable:(Ljava/lang/Throwable;)V
        19: .line 571
            new org.apache.commons.logging.LogConfigurationException
            dup
            aload 3 /* t */
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable t
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   20     1      name  Ljava/lang/String;
            2    3     2  instance  Lorg/apache/commons/logging/Log;
            5   10     2  instance  Lorg/apache/commons/logging/Log;
            4    5     3    params  [Ljava/lang/Object;
            7    8     3    params  [Ljava/lang/Object;
           11   12     3       lce  Lorg/apache/commons/logging/LogConfigurationException;
           13   17     3         e  Ljava/lang/reflect/InvocationTargetException;
           14   17     4         c  Ljava/lang/Throwable;
           18   20     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class org.apache.commons.logging.LogConfigurationException
           0     9      12  Class java.lang.reflect.InvocationTargetException
           0     9      17  Class java.lang.Throwable
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.ClassLoader getContextClassLoaderInternal();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 598
            new org.apache.commons.logging.impl.LogFactoryImpl$1
            dup
            invokespecial org.apache.commons.logging.impl.LogFactoryImpl$1.<init>:()V
         1: .line 597
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException

  private static java.lang.String getSystemProperty(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String def
         0: .line 617
            new org.apache.commons.logging.impl.LogFactoryImpl$2
            dup
            aload 0 /* key */
            aload 1 /* def */
            invokespecial org.apache.commons.logging.impl.LogFactoryImpl$2.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 616
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // java.lang.String def
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   key  Ljava/lang/String;
            0    2     1   def  Ljava/lang/String;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
      Name  Flags
      key   final
      def   final

  private java.lang.ClassLoader getParentClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.ClassLoader cl
         0: .line 634
            new org.apache.commons.logging.impl.LogFactoryImpl$3
            dup
            aload 0 /* this */
            aload 1 /* cl */
            invokespecial org.apache.commons.logging.impl.LogFactoryImpl$3.<init>:(Lorg/apache/commons/logging/impl/LogFactoryImpl;Ljava/lang/ClassLoader;)V
         1: .line 633
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
         2: areturn
         3: .line 639
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         4: .line 640
            aload 0 /* this */
            ldc "[SECURITY] Unable to obtain parent classloader"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         5: .line 641
            aconst_null
            areturn
        end local 1 // java.lang.ClassLoader cl
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    6     1    cl  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.SecurityException
    MethodParameters:
      Name  Flags
      cl    final

  private boolean isLogLibraryAvailable(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String classname
         0: .line 652
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 2
         1: .line 653
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Checking for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            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 org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         2: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 657
            aload 2 /* classname */
         4: .line 658
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         5: .line 659
            iconst_0
         6: .line 656
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/apache/commons/logging/Log;
            astore 3 /* log */
        start local 3 // org.apache.commons.logging.Log log
         7: .line 661
            aload 3 /* log */
            ifnonnull 11
         8: .line 662
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 10
         9: .line 663
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Did not find '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            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 org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        10: .line 665
      StackMap locals: org.apache.commons.logging.Log
      StackMap stack:
            iconst_0
            ireturn
        11: .line 667
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 13
        12: .line 668
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Found '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            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 org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        13: .line 670
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // org.apache.commons.logging.Log log
        14: .line 672
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String
      StackMap stack: org.apache.commons.logging.LogConfigurationException
            pop
        15: .line 673
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 17
        16: .line 674
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Logging system '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is available but not useable."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        17: .line 676
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.String classname
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   18     1       name  Ljava/lang/String;
            0   18     2  classname  Ljava/lang/String;
            7   14     3        log  Lorg/apache/commons/logging/Log;
      Exception table:
        from    to  target  type
           2    10      14  Class org.apache.commons.logging.LogConfigurationException
          11    13      14  Class org.apache.commons.logging.LogConfigurationException
    MethodParameters:
           Name  Flags
      name       
      classname  

  private java.lang.String getConfigurationValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String property
         0: .line 692
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 2
         1: .line 693
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] Trying to get configuration for item "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         2: .line 696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* valueObj */
        start local 2 // java.lang.Object valueObj
         3: .line 697
            aload 2 /* valueObj */
            ifnull 7
         4: .line 698
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 6
         5: .line 699
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] Found LogFactory attribute ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* valueObj */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         6: .line 701
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* valueObj */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
         7: .line 704
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 9
         8: .line 705
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] No LogFactory attribute found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         9: .line 713
      StackMap locals:
      StackMap stack:
            aload 1 /* property */
            aconst_null
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* value */
        start local 3 // java.lang.String value
        10: .line 714
            aload 3 /* value */
            ifnull 15
        11: .line 715
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 13
        12: .line 716
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] Found system property ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        13: .line 718
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* value */
        14: areturn
        15: .line 721
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 21
        16: .line 722
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] No system property found for property "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 3 // java.lang.String value
        17: .line 724
            goto 21
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.Object
      StackMap stack: java.lang.SecurityException
        18: pop
        19: .line 725
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 21
        20: .line 726
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] Security prevented reading system property "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        21: .line 730
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 23
        22: .line 731
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[ENV] No configuration defined for item "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        23: .line 734
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object valueObj
        end local 1 // java.lang.String property
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   24     1  property  Ljava/lang/String;
            3   24     2  valueObj  Ljava/lang/Object;
           10   17     3     value  Ljava/lang/String;
      Exception table:
        from    to  target  type
           9    14      18  Class java.lang.SecurityException
          15    17      18  Class java.lang.SecurityException
    MethodParameters:
          Name  Flags
      property  

  private boolean getBooleanConfiguration(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String key
        start local 2 // boolean dflt
         0: .line 742
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getConfigurationValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* val */
        start local 3 // java.lang.String val
         1: .line 743
            aload 3 /* val */
            ifnonnull 3
         2: .line 744
            iload 2 /* dflt */
            ireturn
         3: .line 746
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* val */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // java.lang.String val
        end local 2 // boolean dflt
        end local 1 // java.lang.String key
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    4     1   key  Ljava/lang/String;
            0    4     2  dflt  Z
            1    4     3   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      dflt  

  private void initConfiguration();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 757
            aload 0 /* this */
            aload 0 /* this */
            ldc "org.apache.commons.logging.Log.allowFlawedContext"
            iconst_1
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getBooleanConfiguration:(Ljava/lang/String;Z)Z
            putfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedContext:Z
         1: .line 758
            aload 0 /* this */
            aload 0 /* this */
            ldc "org.apache.commons.logging.Log.allowFlawedDiscovery"
            iconst_1
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getBooleanConfiguration:(Ljava/lang/String;Z)Z
            putfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedDiscovery:Z
         2: .line 759
            aload 0 /* this */
            aload 0 /* this */
            ldc "org.apache.commons.logging.Log.allowFlawedHierarchy"
            iconst_1
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getBooleanConfiguration:(Ljava/lang/String;Z)Z
            putfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedHierarchy:Z
         3: .line 760
            return
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/logging/impl/LogFactoryImpl;

  private org.apache.commons.logging.Log discoverLogImplementation(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/commons/logging/Log;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String logCategory
         0: .line 773
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 2
         1: .line 774
            aload 0 /* this */
            ldc "Discovering a Log implementation..."
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         2: .line 777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.initConfiguration:()V
         3: .line 779
            aconst_null
            astore 2 /* result */
        start local 2 // org.apache.commons.logging.Log result
         4: .line 782
            aload 0 /* this */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.findUserSpecifiedLogClassName:()Ljava/lang/String;
            astore 3 /* specifiedLogClassName */
        start local 3 // java.lang.String specifiedLogClassName
         5: .line 784
            aload 3 /* specifiedLogClassName */
            ifnull 24
         6: .line 785
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 10
         7: .line 786
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Attempting to load user-specified log class '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 787
            aload 3 /* specifiedLogClassName */
            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;
         9: .line 786
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        10: .line 790
      StackMap locals: org.apache.commons.logging.Log java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 3 /* specifiedLogClassName */
        11: .line 791
            aload 1 /* logCategory */
        12: .line 792
            iconst_1
        13: .line 790
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/apache/commons/logging/Log;
            astore 2 /* result */
        14: .line 793
            aload 2 /* result */
            ifnonnull 23
        15: .line 794
            new java.lang.StringBuffer
            dup
            ldc "User-specified log class '"
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 4 /* messageBuffer */
        start local 4 // java.lang.StringBuffer messageBuffer
        16: .line 795
            aload 4 /* messageBuffer */
            aload 3 /* specifiedLogClassName */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        17: .line 796
            aload 4 /* messageBuffer */
            ldc "' cannot be found or is not useable."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        18: .line 800
            aload 0 /* this */
            aload 4 /* messageBuffer */
            aload 3 /* specifiedLogClassName */
            ldc "org.apache.commons.logging.impl.Log4JLogger"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.informUponSimilarName:(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;)V
        19: .line 801
            aload 0 /* this */
            aload 4 /* messageBuffer */
            aload 3 /* specifiedLogClassName */
            ldc "org.apache.commons.logging.impl.Jdk14Logger"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.informUponSimilarName:(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;)V
        20: .line 802
            aload 0 /* this */
            aload 4 /* messageBuffer */
            aload 3 /* specifiedLogClassName */
            ldc "org.apache.commons.logging.impl.Jdk13LumberjackLogger"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.informUponSimilarName:(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;)V
        21: .line 803
            aload 0 /* this */
            aload 4 /* messageBuffer */
            aload 3 /* specifiedLogClassName */
            ldc "org.apache.commons.logging.impl.SimpleLog"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.informUponSimilarName:(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;)V
        22: .line 804
            new org.apache.commons.logging.LogConfigurationException
            dup
            aload 4 /* messageBuffer */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.StringBuffer messageBuffer
        23: .line 807
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        24: .line 838
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 28
        25: .line 839
            aload 0 /* this */
        26: .line 840
            ldc "No user-specified Log implementation; performing discovery using the standard supported logging implementations..."
        27: .line 839
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        28: .line 843
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        29: goto 32
        30: .line 844
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.commons.logging.impl.LogFactoryImpl.classesToDiscover:[Ljava/lang/String;
            iload 4 /* i */
            aaload
            aload 1 /* logCategory */
            iconst_1
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/apache/commons/logging/Log;
            astore 2 /* result */
        31: .line 843
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 4 /* i */
            getstatic org.apache.commons.logging.impl.LogFactoryImpl.classesToDiscover:[Ljava/lang/String;
            arraylength
            if_icmpge 33
            aload 2 /* result */
            ifnull 30
        end local 4 // int i
        33: .line 847
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            ifnonnull 37
        34: .line 848
            new org.apache.commons.logging.LogConfigurationException
            dup
        35: .line 849
            ldc "No suitable Log implementation"
        36: .line 848
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        37: .line 852
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 3 // java.lang.String specifiedLogClassName
        end local 2 // org.apache.commons.logging.Log result
        end local 1 // java.lang.String logCategory
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   38     0                   this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   38     1            logCategory  Ljava/lang/String;
            4   38     2                 result  Lorg/apache/commons/logging/Log;
            5   38     3  specifiedLogClassName  Ljava/lang/String;
           16   23     4          messageBuffer  Ljava/lang/StringBuffer;
           29   33     4                      i  I
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
    MethodParameters:
             Name  Flags
      logCategory  

  private void informUponSimilarName(java.lang.StringBuffer, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.StringBuffer messageBuffer
        start local 2 // java.lang.String name
        start local 3 // java.lang.String candidate
         0: .line 864
            aload 2 /* name */
            aload 3 /* candidate */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 867
            return
         2: .line 873
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            iconst_1
            iconst_0
            aload 3 /* candidate */
            iconst_0
            getstatic org.apache.commons.logging.impl.LogFactoryImpl.PKG_LEN:I
            iconst_5
            iadd
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ifeq 6
         3: .line 874
            aload 1 /* messageBuffer */
            ldc " Did you mean '"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 875
            aload 1 /* messageBuffer */
            aload 3 /* candidate */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 876
            aload 1 /* messageBuffer */
            ldc "'?"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 878
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String candidate
        end local 2 // java.lang.String name
        end local 1 // java.lang.StringBuffer messageBuffer
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0    7     1  messageBuffer  Ljava/lang/StringBuffer;
            0    7     2           name  Ljava/lang/String;
            0    7     3      candidate  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      messageBuffer  final
      name           final
      candidate      final

  private java.lang.String findUserSpecifiedLogClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 888
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 2
         1: .line 889
            aload 0 /* this */
            ldc "Trying to get log class from attribute 'org.apache.commons.logging.Log'"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         2: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "org.apache.commons.logging.Log"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* specifiedClass */
        start local 1 // java.lang.String specifiedClass
         3: .line 893
            aload 1 /* specifiedClass */
            ifnonnull 7
         4: .line 894
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 6
         5: .line 895
            aload 0 /* this */
            ldc "Trying to get log class from attribute 'org.apache.commons.logging.log'"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         6: .line 898
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            ldc "org.apache.commons.logging.log"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* specifiedClass */
         7: .line 901
      StackMap locals:
      StackMap stack:
            aload 1 /* specifiedClass */
            ifnonnull 17
         8: .line 902
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 10
         9: .line 903
            aload 0 /* this */
            ldc "Trying to get log class from system property 'org.apache.commons.logging.Log'"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        10: .line 907
      StackMap locals:
      StackMap stack:
            ldc "org.apache.commons.logging.Log"
            aconst_null
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* specifiedClass */
        11: .line 908
            goto 17
      StackMap locals:
      StackMap stack: java.lang.SecurityException
        12: astore 2 /* e */
        start local 2 // java.lang.SecurityException e
        13: .line 909
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 17
        14: .line 910
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "No access allowed to system property 'org.apache.commons.logging.Log' - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 911
            aload 2 /* e */
            invokevirtual java.lang.SecurityException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 910
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 2 // java.lang.SecurityException e
        17: .line 916
      StackMap locals:
      StackMap stack:
            aload 1 /* specifiedClass */
            ifnonnull 27
        18: .line 917
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 20
        19: .line 918
            aload 0 /* this */
            ldc "Trying to get log class from system property 'org.apache.commons.logging.log'"
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        20: .line 922
      StackMap locals:
      StackMap stack:
            ldc "org.apache.commons.logging.log"
            aconst_null
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* specifiedClass */
        21: .line 923
            goto 27
      StackMap locals:
      StackMap stack: java.lang.SecurityException
        22: astore 2 /* e */
        start local 2 // java.lang.SecurityException e
        23: .line 924
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 27
        24: .line 925
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "No access allowed to system property 'org.apache.commons.logging.log' - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 926
            aload 2 /* e */
            invokevirtual java.lang.SecurityException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 925
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 2 // java.lang.SecurityException e
        27: .line 934
      StackMap locals:
      StackMap stack:
            aload 1 /* specifiedClass */
            ifnull 29
        28: .line 935
            aload 1 /* specifiedClass */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* specifiedClass */
        29: .line 938
      StackMap locals:
      StackMap stack:
            aload 1 /* specifiedClass */
            areturn
        end local 1 // java.lang.String specifiedClass
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0            this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            3   30     1  specifiedClass  Ljava/lang/String;
           13   17     2               e  Ljava/lang/SecurityException;
           23   27     2               e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.SecurityException
          20    21      22  Class java.lang.SecurityException

  private org.apache.commons.logging.Log createLogFromClass(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Lorg/apache/commons/logging/Log;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String logAdapterClassName
        start local 2 // java.lang.String logCategory
        start local 3 // boolean affectState
         0: .line 960
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 2
         1: .line 961
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Attempting to instantiate '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            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 org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         2: .line 964
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* logCategory */
            aastore
            astore 4 /* params */
        start local 4 // java.lang.Object[] params
         3: .line 965
            aconst_null
            astore 5 /* logAdapter */
        start local 5 // org.apache.commons.logging.Log logAdapter
         4: .line 966
            aconst_null
            astore 6 /* constructor */
        start local 6 // java.lang.reflect.Constructor constructor
         5: .line 968
            aconst_null
            astore 7 /* logAdapterClass */
        start local 7 // java.lang.Class logAdapterClass
         6: .line 969
            aload 0 /* this */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getBaseClassLoader:()Ljava/lang/ClassLoader;
            astore 8 /* currentCL */
        start local 8 // java.lang.ClassLoader currentCL
         7: .line 974
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String int java.lang.Object[] org.apache.commons.logging.Log java.lang.reflect.Constructor java.lang.Class java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Trying to load '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' from classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* currentCL */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(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 org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         8: .line 976
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 18
         9: .line 982
            new java.lang.StringBuilder
            dup
            aload 1 /* logAdapterClassName */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* resourceName */
        start local 10 // java.lang.String resourceName
        10: .line 983
            aload 8 /* currentCL */
            ifnull 13
        11: .line 984
            aload 8 /* currentCL */
            aload 10 /* resourceName */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 9 /* url */
        start local 9 // java.net.URL url
        12: .line 985
            goto 14
        end local 9 // java.net.URL url
        13: .line 986
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String int java.lang.Object[] org.apache.commons.logging.Log java.lang.reflect.Constructor java.lang.Class java.lang.ClassLoader top java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 10 /* resourceName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.ClassLoader.getSystemResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 9 /* url */
        start local 9 // java.net.URL url
        14: .line 989
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String int java.lang.Object[] org.apache.commons.logging.Log java.lang.reflect.Constructor java.lang.Class java.lang.ClassLoader java.net.URL java.lang.String
      StackMap stack:
            aload 9 /* url */
            ifnonnull 17
        15: .line 990
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Class '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* resourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] cannot be found."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        16: .line 991
            goto 18
        17: .line 992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Class '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' was found at '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* url */
            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;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 10 // java.lang.String resourceName
        end local 9 // java.net.URL url
        18: .line 998
      StackMap locals:
      StackMap stack:
            aload 1 /* logAdapterClassName */
            iconst_1
            aload 8 /* currentCL */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 9 /* c */
        start local 9 // java.lang.Class c
        19: .line 999
            goto 33
        end local 9 // java.lang.Class c
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        20: astore 10 /* originalClassNotFoundException */
        start local 10 // java.lang.ClassNotFoundException originalClassNotFoundException
        21: .line 1003
            aload 10 /* originalClassNotFoundException */
            invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
            astore 11 /* msg */
        start local 11 // java.lang.String msg
        22: .line 1004
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "The log adapter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is not available via classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 1005
            aload 8 /* currentCL */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)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 11 /* msg */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 1004
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        25: .line 1014
            aload 1 /* logAdapterClassName */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 9 /* c */
        start local 9 // java.lang.Class c
        26: .line 1015
            goto 33
        end local 9 // java.lang.Class c
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String int java.lang.Object[] org.apache.commons.logging.Log java.lang.reflect.Constructor java.lang.Class java.lang.ClassLoader top java.lang.ClassNotFoundException java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
        27: astore 12 /* secondaryClassNotFoundException */
        start local 12 // java.lang.ClassNotFoundException secondaryClassNotFoundException
        28: .line 1017
            aload 12 /* secondaryClassNotFoundException */
            invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
            astore 11 /* msg */
        29: .line 1018
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "The log adapter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 1019
            ldc "' is not available via the LogFactoryImpl class classloader: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* msg */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 1018
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        32: .line 1020
            goto 64
        end local 12 // java.lang.ClassNotFoundException secondaryClassNotFoundException
        end local 11 // java.lang.String msg
        end local 10 // java.lang.ClassNotFoundException originalClassNotFoundException
        start local 9 // java.lang.Class c
        33: .line 1024
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String int java.lang.Object[] org.apache.commons.logging.Log java.lang.reflect.Constructor java.lang.Class java.lang.ClassLoader java.lang.Class
      StackMap stack:
            aload 9 /* c */
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructorSignature:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 6 /* constructor */
        34: .line 1025
            aload 6 /* constructor */
            aload 4 /* params */
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* o */
        start local 10 // java.lang.Object o
        35: .line 1031
            aload 10 /* o */
            instanceof org.apache.commons.logging.Log
            ifeq 39
        36: .line 1032
            aload 9 /* c */
            astore 7 /* logAdapterClass */
        37: .line 1033
            aload 10 /* o */
            checkcast org.apache.commons.logging.Log
            astore 5 /* logAdapter */
        38: .line 1034
            goto 64
        39: .line 1047
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 8 /* currentCL */
            aload 9 /* c */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.handleFlawedHierarchy:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
        end local 10 // java.lang.Object o
        end local 9 // java.lang.Class c
        40: .line 1048
            goto 60
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.String java.lang.String int java.lang.Object[] org.apache.commons.logging.Log java.lang.reflect.Constructor java.lang.Class java.lang.ClassLoader
      StackMap stack: java.lang.NoClassDefFoundError
        41: astore 9 /* e */
        start local 9 // java.lang.NoClassDefFoundError e
        42: .line 1054
            aload 9 /* e */
            invokevirtual java.lang.NoClassDefFoundError.getMessage:()Ljava/lang/String;
            astore 10 /* msg */
        start local 10 // java.lang.String msg
        43: .line 1055
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "The log adapter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        44: .line 1056
            ldc "' is missing dependencies when loaded via classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* currentCL */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        45: .line 1057
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* msg */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 1055
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        47: .line 1058
            goto 64
        end local 10 // java.lang.String msg
        end local 9 // java.lang.NoClassDefFoundError e
        48: .line 1059
      StackMap locals:
      StackMap stack: java.lang.ExceptionInInitializerError
            astore 9 /* e */
        start local 9 // java.lang.ExceptionInInitializerError e
        49: .line 1066
            aload 9 /* e */
            invokevirtual java.lang.ExceptionInInitializerError.getMessage:()Ljava/lang/String;
            astore 10 /* msg */
        start local 10 // java.lang.String msg
        50: .line 1067
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "The log adapter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        51: .line 1068
            ldc "' is unable to initialize itself when loaded via classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* currentCL */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        52: .line 1069
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* msg */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        53: .line 1067
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        54: .line 1070
            goto 64
        end local 10 // java.lang.String msg
        end local 9 // java.lang.ExceptionInInitializerError e
        55: .line 1071
      StackMap locals:
      StackMap stack: org.apache.commons.logging.LogConfigurationException
            astore 9 /* e */
        start local 9 // org.apache.commons.logging.LogConfigurationException e
        56: .line 1074
            aload 9 /* e */
            athrow
        end local 9 // org.apache.commons.logging.LogConfigurationException e
        57: .line 1075
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9 /* t */
        start local 9 // java.lang.Throwable t
        58: .line 1076
            aload 9 /* t */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.handleThrowable:(Ljava/lang/Throwable;)V
        59: .line 1080
            aload 0 /* this */
            aload 1 /* logAdapterClassName */
            aload 8 /* currentCL */
            aload 9 /* t */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.handleFlawedDiscovery:(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Throwable;)V
        end local 9 // java.lang.Throwable t
        60: .line 1083
      StackMap locals:
      StackMap stack:
            aload 8 /* currentCL */
            ifnonnull 62
        61: .line 1084
            goto 64
        62: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* currentCL */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getParentClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 8 /* currentCL */
        63: .line 971
            goto 7
        64: .line 1092
      StackMap locals:
      StackMap stack:
            aload 7 /* logAdapterClass */
            ifnull 79
            iload 3 /* affectState */
            ifeq 79
        65: .line 1094
            aload 0 /* this */
            aload 1 /* logAdapterClassName */
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logClassName:Ljava/lang/String;
        66: .line 1095
            aload 0 /* this */
            aload 6 /* constructor */
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logConstructor:Ljava/lang/reflect/Constructor;
        67: .line 1099
            aload 0 /* this */
            aload 7 /* logAdapterClass */
            ldc "setLogFactory"
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.logMethodSignature:[Ljava/lang/Class;
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logMethod:Ljava/lang/reflect/Method;
        68: .line 1100
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Found method setLogFactory(LogFactory) in '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            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 org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        69: .line 1101
            goto 76
      StackMap locals:
      StackMap stack: java.lang.Throwable
        70: astore 9 /* t */
        start local 9 // java.lang.Throwable t
        71: .line 1102
            aload 9 /* t */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.handleThrowable:(Ljava/lang/Throwable;)V
        72: .line 1103
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.logging.impl.LogFactoryImpl.logMethod:Ljava/lang/reflect/Method;
        73: .line 1104
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "[INFO] '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' from classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* currentCL */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        74: .line 1105
            ldc " does not declare optional method "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "setLogFactory(LogFactory)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        75: .line 1104
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 9 // java.lang.Throwable t
        76: .line 1108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Log adapter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' from classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        77: .line 1109
            aload 7 /* logAdapterClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has been selected for use."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        78: .line 1108
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        79: .line 1112
      StackMap locals:
      StackMap stack:
            aload 5 /* logAdapter */
            areturn
        end local 8 // java.lang.ClassLoader currentCL
        end local 7 // java.lang.Class logAdapterClass
        end local 6 // java.lang.reflect.Constructor constructor
        end local 5 // org.apache.commons.logging.Log logAdapter
        end local 4 // java.lang.Object[] params
        end local 3 // boolean affectState
        end local 2 // java.lang.String logCategory
        end local 1 // java.lang.String logAdapterClassName
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0   80     0                             this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   80     1              logAdapterClassName  Ljava/lang/String;
            0   80     2                      logCategory  Ljava/lang/String;
            0   80     3                      affectState  Z
            3   80     4                           params  [Ljava/lang/Object;
            4   80     5                       logAdapter  Lorg/apache/commons/logging/Log;
            5   80     6                      constructor  Ljava/lang/reflect/Constructor;
            6   80     7                  logAdapterClass  Ljava/lang/Class;
            7   80     8                        currentCL  Ljava/lang/ClassLoader;
           12   13     9                              url  Ljava/net/URL;
           14   18     9                              url  Ljava/net/URL;
           10   18    10                     resourceName  Ljava/lang/String;
           19   20     9                                c  Ljava/lang/Class;
           26   27     9                                c  Ljava/lang/Class;
           33   40     9                                c  Ljava/lang/Class;
           21   33    10   originalClassNotFoundException  Ljava/lang/ClassNotFoundException;
           22   33    11                              msg  Ljava/lang/String;
           28   33    12  secondaryClassNotFoundException  Ljava/lang/ClassNotFoundException;
           35   40    10                                o  Ljava/lang/Object;
           42   48     9                                e  Ljava/lang/NoClassDefFoundError;
           43   48    10                              msg  Ljava/lang/String;
           49   55     9                                e  Ljava/lang/ExceptionInInitializerError;
           50   55    10                              msg  Ljava/lang/String;
           56   57     9                                e  Lorg/apache/commons/logging/LogConfigurationException;
           58   60     9                                t  Ljava/lang/Throwable;
           71   76     9                                t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          18    19      20  Class java.lang.ClassNotFoundException
          25    26      27  Class java.lang.ClassNotFoundException
           8    32      41  Class java.lang.NoClassDefFoundError
          33    38      41  Class java.lang.NoClassDefFoundError
          39    40      41  Class java.lang.NoClassDefFoundError
           8    32      48  Class java.lang.ExceptionInInitializerError
          33    38      48  Class java.lang.ExceptionInInitializerError
          39    40      48  Class java.lang.ExceptionInInitializerError
           8    32      55  Class org.apache.commons.logging.LogConfigurationException
          33    38      55  Class org.apache.commons.logging.LogConfigurationException
          39    40      55  Class org.apache.commons.logging.LogConfigurationException
           8    32      57  Class java.lang.Throwable
          33    38      57  Class java.lang.Throwable
          39    40      57  Class java.lang.Throwable
          67    69      70  Class java.lang.Throwable
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
    MethodParameters:
                     Name  Flags
      logAdapterClassName  
      logCategory          
      affectState          

  private java.lang.ClassLoader getBaseClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
         0: .line 1134
            ldc Lorg/apache/commons/logging/impl/LogFactoryImpl;
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 1 /* thisClassLoader */
        start local 1 // java.lang.ClassLoader thisClassLoader
         1: .line 1136
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.useTCCL:Z
            ifne 3
         2: .line 1137
            aload 1 /* thisClassLoader */
            areturn
         3: .line 1140
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getContextClassLoaderInternal:()Ljava/lang/ClassLoader;
            astore 2 /* contextClassLoader */
        start local 2 // java.lang.ClassLoader contextClassLoader
         4: .line 1142
            aload 0 /* this */
         5: .line 1143
            aload 2 /* contextClassLoader */
            aload 1 /* thisClassLoader */
         6: .line 1142
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getLowestClassLoader:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 3 /* baseClassLoader */
        start local 3 // java.lang.ClassLoader baseClassLoader
         7: .line 1145
            aload 3 /* baseClassLoader */
            ifnonnull 13
         8: .line 1150
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedContext:Z
            ifeq 12
         9: .line 1151
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 11
        10: .line 1152
            aload 0 /* this */
            ldc "[WARNING] the context classloader is not part of a parent-child relationship with the classloader that loaded LogFactoryImpl."
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        11: .line 1159
      StackMap locals: java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack:
            aload 2 /* contextClassLoader */
            areturn
        12: .line 1162
      StackMap locals:
      StackMap stack:
            new org.apache.commons.logging.LogConfigurationException
            dup
            ldc "Bad classloader hierarchy; LogFactoryImpl was loaded via a classloader that is not related to the current context classloader."
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1168
      StackMap locals:
      StackMap stack:
            aload 3 /* baseClassLoader */
            aload 2 /* contextClassLoader */
            if_acmpeq 23
        14: .line 1174
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedContext:Z
            ifeq 20
        15: .line 1175
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 23
        16: .line 1176
            aload 0 /* this */
        17: .line 1177
            ldc "Warning: the context classloader is an ancestor of the classloader that loaded LogFactoryImpl; it should be the same or a descendant. The application using commons-logging should ensure the context classloader is used correctly."
        18: .line 1176
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        19: .line 1183
            goto 23
        20: .line 1184
      StackMap locals:
      StackMap stack:
            new org.apache.commons.logging.LogConfigurationException
            dup
        21: .line 1185
            ldc "Bad classloader hierarchy; LogFactoryImpl was loaded via a classloader that is not related to the current context classloader."
        22: .line 1184
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 1191
      StackMap locals:
      StackMap stack:
            aload 3 /* baseClassLoader */
            areturn
        end local 3 // java.lang.ClassLoader baseClassLoader
        end local 2 // java.lang.ClassLoader contextClassLoader
        end local 1 // java.lang.ClassLoader thisClassLoader
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   24     0                this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            1   24     1     thisClassLoader  Ljava/lang/ClassLoader;
            4   24     2  contextClassLoader  Ljava/lang/ClassLoader;
            7   24     3     baseClassLoader  Ljava/lang/ClassLoader;
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException

  private java.lang.ClassLoader getLowestClassLoader(java.lang.ClassLoader, java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.ClassLoader c1
        start local 2 // java.lang.ClassLoader c2
         0: .line 1207
            aload 1 /* c1 */
            ifnonnull 2
         1: .line 1208
            aload 2 /* c2 */
            areturn
         2: .line 1211
      StackMap locals:
      StackMap stack:
            aload 2 /* c2 */
            ifnonnull 4
         3: .line 1212
            aload 1 /* c1 */
            areturn
         4: .line 1218
      StackMap locals:
      StackMap stack:
            aload 1 /* c1 */
            astore 3 /* current */
        start local 3 // java.lang.ClassLoader current
         5: .line 1219
            goto 9
         6: .line 1220
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* current */
            aload 2 /* c2 */
            if_acmpne 8
         7: .line 1221
            aload 1 /* c1 */
            areturn
         8: .line 1224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* current */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getParentClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 3 /* current */
         9: .line 1219
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 6
        10: .line 1228
            aload 2 /* c2 */
            astore 3 /* current */
        11: .line 1229
            goto 15
        12: .line 1230
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            aload 1 /* c1 */
            if_acmpne 14
        13: .line 1231
            aload 2 /* c2 */
            areturn
        14: .line 1234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* current */
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.getParentClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 3 /* current */
        15: .line 1229
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 12
        16: .line 1237
            aconst_null
            areturn
        end local 3 // java.lang.ClassLoader current
        end local 2 // java.lang.ClassLoader c2
        end local 1 // java.lang.ClassLoader c1
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   17     1       c1  Ljava/lang/ClassLoader;
            0   17     2       c2  Ljava/lang/ClassLoader;
            5   17     3  current  Ljava/lang/ClassLoader;
    MethodParameters:
      Name  Flags
      c1    
      c2    

  private void handleFlawedDiscovery(java.lang.String, java.lang.ClassLoader, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.String logAdapterClassName
        start local 2 // java.lang.ClassLoader classLoader
        start local 3 // java.lang.Throwable discoveryFlaw
         0: .line 1259
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 21
         1: .line 1260
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate Log '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1261
            aload 1 /* logAdapterClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' -- "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1262
            aload 3 /* discoveryFlaw */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            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;
         4: .line 1263
            aload 3 /* discoveryFlaw */
            invokevirtual java.lang.Throwable.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1260
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
         6: .line 1265
            aload 3 /* discoveryFlaw */
            instanceof java.lang.reflect.InvocationTargetException
            ifeq 21
         7: .line 1269
            aload 3 /* discoveryFlaw */
            checkcast java.lang.reflect.InvocationTargetException
            astore 4 /* ite */
        start local 4 // java.lang.reflect.InvocationTargetException ite
         8: .line 1270
            aload 4 /* ite */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 5 /* cause */
        start local 5 // java.lang.Throwable cause
         9: .line 1271
            aload 5 /* cause */
            ifnull 21
        10: .line 1272
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "... InvocationTargetException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 1273
            aload 5 /* cause */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            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;
        12: .line 1274
            aload 5 /* cause */
            invokevirtual java.lang.Throwable.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 1272
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        14: .line 1276
            aload 5 /* cause */
            instanceof java.lang.ExceptionInInitializerError
            ifeq 21
        15: .line 1277
            aload 5 /* cause */
            checkcast java.lang.ExceptionInInitializerError
            astore 6 /* eiie */
        start local 6 // java.lang.ExceptionInInitializerError eiie
        16: .line 1278
            aload 6 /* eiie */
            invokevirtual java.lang.ExceptionInInitializerError.getException:()Ljava/lang/Throwable;
            astore 7 /* cause2 */
        start local 7 // java.lang.Throwable cause2
        17: .line 1279
            aload 7 /* cause2 */
            ifnull 21
        18: .line 1280
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 8 /* sw */
        start local 8 // java.io.StringWriter sw
        19: .line 1281
            aload 7 /* cause2 */
            new java.io.PrintWriter
            dup
            aload 8 /* sw */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
        20: .line 1282
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "... ExceptionInInitializerError: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* sw */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 8 // java.io.StringWriter sw
        end local 7 // java.lang.Throwable cause2
        end local 6 // java.lang.ExceptionInInitializerError eiie
        end local 5 // java.lang.Throwable cause
        end local 4 // java.lang.reflect.InvocationTargetException ite
        21: .line 1289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedDiscovery:Z
            ifne 23
        22: .line 1290
            new org.apache.commons.logging.LogConfigurationException
            dup
            aload 3 /* discoveryFlaw */
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/Throwable;)V
            athrow
        23: .line 1292
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Throwable discoveryFlaw
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.String logAdapterClassName
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   24     0                 this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   24     1  logAdapterClassName  Ljava/lang/String;
            0   24     2          classLoader  Ljava/lang/ClassLoader;
            0   24     3        discoveryFlaw  Ljava/lang/Throwable;
            8   21     4                  ite  Ljava/lang/reflect/InvocationTargetException;
            9   21     5                cause  Ljava/lang/Throwable;
           16   21     6                 eiie  Ljava/lang/ExceptionInInitializerError;
           17   21     7               cause2  Ljava/lang/Throwable;
           19   21     8                   sw  Ljava/io/StringWriter;
    MethodParameters:
                     Name  Flags
      logAdapterClassName  
      classLoader          
      discoveryFlaw        

  private void handleFlawedHierarchy(java.lang.ClassLoader, java.lang.Class);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
        start local 1 // java.lang.ClassLoader badClassLoader
        start local 2 // java.lang.Class badClass
         0: .line 1323
            iconst_0
            istore 3 /* implementsLog */
        start local 3 // boolean implementsLog
         1: .line 1324
            ldc Lorg/apache/commons/logging/Log;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 4 /* logInterfaceName */
        start local 4 // java.lang.String logInterfaceName
         2: .line 1325
            aload 2 /* badClass */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 5 /* interfaces */
        start local 5 // java.lang.Class[] interfaces
         3: .line 1326
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 9
         5: .line 1327
      StackMap locals: org.apache.commons.logging.impl.LogFactoryImpl java.lang.ClassLoader java.lang.Class int java.lang.String java.lang.Class[] int
      StackMap stack:
            aload 4 /* logInterfaceName */
            aload 5 /* interfaces */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 1328
            iconst_1
            istore 3 /* implementsLog */
         7: .line 1329
            goto 10
         8: .line 1326
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            aload 5 /* interfaces */
            arraylength
            if_icmplt 5
        end local 6 // int i
        10: .line 1333
      StackMap locals:
      StackMap stack:
            iload 3 /* implementsLog */
            ifeq 39
        11: .line 1336
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 21
        12: .line 1338
            ldc Lorg/apache/commons/logging/Log;
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 6 /* logInterfaceClassLoader */
        start local 6 // java.lang.ClassLoader logInterfaceClassLoader
        13: .line 1339
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Class '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* badClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' was found in classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 1340
            aload 1 /* badClassLoader */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". It is bound to a Log interface which is not"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1341
            ldc " the one loaded from classloader "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* logInterfaceClassLoader */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.objectId:(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;
        16: .line 1339
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 6 // java.lang.ClassLoader logInterfaceClassLoader
        17: .line 1342
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 6 /* t */
        start local 6 // java.lang.Throwable t
        19: .line 1343
            aload 6 /* t */
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.handleThrowable:(Ljava/lang/Throwable;)V
        20: .line 1344
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Error while trying to output diagnostics about bad class '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* badClass */
            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;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 6 // java.lang.Throwable t
        21: .line 1348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedHierarchy:Z
            ifne 31
        22: .line 1349
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 6 /* msg */
        start local 6 // java.lang.StringBuffer msg
        23: .line 1350
            aload 6 /* msg */
            ldc "Terminating logging for this context "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        24: .line 1351
            aload 6 /* msg */
            ldc "due to bad log hierarchy. "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        25: .line 1352
            aload 6 /* msg */
            ldc "You have more than one version of '"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        26: .line 1353
            aload 6 /* msg */
            ldc Lorg/apache/commons/logging/Log;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        27: .line 1354
            aload 6 /* msg */
            ldc "' visible."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        28: .line 1355
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 30
        29: .line 1356
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        30: .line 1358
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            new org.apache.commons.logging.LogConfigurationException
            dup
            aload 6 /* msg */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.StringBuffer msg
        31: .line 1361
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 54
        32: .line 1362
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 6 /* msg */
        start local 6 // java.lang.StringBuffer msg
        33: .line 1363
            aload 6 /* msg */
            ldc "Warning: bad log hierarchy. "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        34: .line 1364
            aload 6 /* msg */
            ldc "You have more than one version of '"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        35: .line 1365
            aload 6 /* msg */
            ldc Lorg/apache/commons/logging/Log;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        36: .line 1366
            aload 6 /* msg */
            ldc "' visible."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        37: .line 1367
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 6 // java.lang.StringBuffer msg
        38: .line 1369
            goto 54
        39: .line 1371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.logging.impl.LogFactoryImpl.allowFlawedDiscovery:Z
            ifne 48
        40: .line 1372
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 6 /* msg */
        start local 6 // java.lang.StringBuffer msg
        41: .line 1373
            aload 6 /* msg */
            ldc "Terminating logging for this context. "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        42: .line 1374
            aload 6 /* msg */
            ldc "Log class '"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        43: .line 1375
            aload 6 /* msg */
            aload 2 /* badClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        44: .line 1376
            aload 6 /* msg */
            ldc "' does not implement the Log interface."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        45: .line 1377
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 47
        46: .line 1378
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        47: .line 1381
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            new org.apache.commons.logging.LogConfigurationException
            dup
            aload 6 /* msg */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokespecial org.apache.commons.logging.LogConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.StringBuffer msg
        48: .line 1384
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.isDiagnosticsEnabled:()Z
            ifeq 54
        49: .line 1385
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 6 /* msg */
        start local 6 // java.lang.StringBuffer msg
        50: .line 1386
            aload 6 /* msg */
            ldc "[WARNING] Log class '"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        51: .line 1387
            aload 6 /* msg */
            aload 2 /* badClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        52: .line 1388
            aload 6 /* msg */
            ldc "' does not implement the Log interface."
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        53: .line 1389
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual org.apache.commons.logging.impl.LogFactoryImpl.logDiagnostic:(Ljava/lang/String;)V
        end local 6 // java.lang.StringBuffer msg
        54: .line 1392
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.Class[] interfaces
        end local 4 // java.lang.String logInterfaceName
        end local 3 // boolean implementsLog
        end local 2 // java.lang.Class badClass
        end local 1 // java.lang.ClassLoader badClassLoader
        end local 0 // org.apache.commons.logging.impl.LogFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   55     0                     this  Lorg/apache/commons/logging/impl/LogFactoryImpl;
            0   55     1           badClassLoader  Ljava/lang/ClassLoader;
            0   55     2                 badClass  Ljava/lang/Class;
            1   55     3            implementsLog  Z
            2   55     4         logInterfaceName  Ljava/lang/String;
            3   55     5               interfaces  [Ljava/lang/Class;
            4   10     6                        i  I
           13   17     6  logInterfaceClassLoader  Ljava/lang/ClassLoader;
           19   21     6                        t  Ljava/lang/Throwable;
           23   31     6                      msg  Ljava/lang/StringBuffer;
           33   38     6                      msg  Ljava/lang/StringBuffer;
           41   48     6                      msg  Ljava/lang/StringBuffer;
           50   54     6                      msg  Ljava/lang/StringBuffer;
      Exception table:
        from    to  target  type
          12    17      18  Class java.lang.Throwable
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
    MethodParameters:
                Name  Flags
      badClassLoader  
      badClass        

  static java.lang.ClassLoader access$0();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1
            invokestatic org.apache.commons.logging.impl.LogFactoryImpl.directGetContextClassLoader:()Ljava/lang/ClassLoader;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws org.apache.commons.logging.LogConfigurationException
}
SourceFile: "LogFactoryImpl.java"
NestMembers:
  org.apache.commons.logging.impl.LogFactoryImpl$1  org.apache.commons.logging.impl.LogFactoryImpl$2  org.apache.commons.logging.impl.LogFactoryImpl$3
InnerClasses:
  org.apache.commons.logging.impl.LogFactoryImpl$1
  org.apache.commons.logging.impl.LogFactoryImpl$2
  org.apache.commons.logging.impl.LogFactoryImpl$3