final class org.apache.html.dom.ObjectFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.html.dom.ObjectFactory
  super_class: java.lang.Object
{
  private static final java.lang.String DEFAULT_PROPERTIES_FILENAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "xerces.properties"

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static java.util.Properties fXercesProperties;
    descriptor: Ljava/util/Properties;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static long fLastModified;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 54
            invokestatic org.apache.html.dom.ObjectFactory.isDebugEnabled:()Z
            putstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
         1: .line 66
            aconst_null
            putstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
         2: .line 73
            ldc -1
            putstatic org.apache.html.dom.ObjectFactory.fLastModified:J
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.html.dom.ObjectFactory this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.html.dom.ObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/html/dom/ObjectFactory;

  static java.lang.Object createObject(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String factoryId
        start local 1 // java.lang.String fallbackClassName
         0: .line 99
            aload 0 /* factoryId */
            aconst_null
            aload 1 /* fallbackClassName */
            invokestatic org.apache.html.dom.ObjectFactory.createObject:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String fallbackClassName
        end local 0 // java.lang.String factoryId
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0          factoryId  Ljava/lang/String;
            0    1     1  fallbackClassName  Ljava/lang/String;
    Exceptions:
      throws org.apache.html.dom.ObjectFactory$ConfigurationError
    MethodParameters:
                   Name  Flags
      factoryId          
      fallbackClassName  

  static java.lang.Object createObject(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // java.lang.String factoryId
        start local 1 // java.lang.String propertiesFilename
        start local 2 // java.lang.String fallbackClassName
         0: .line 129
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 1
            ldc "debug is on"
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
         1: .line 131
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.html.dom.ObjectFactory.findClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         2: .line 135
            aload 0 /* factoryId */
            invokestatic org.apache.html.dom.SecuritySupport.getSystemProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* systemProp */
        start local 4 // java.lang.String systemProp
         3: .line 136
            aload 4 /* systemProp */
            ifnull 8
            aload 4 /* systemProp */
            invokevirtual java.lang.String.length:()I
            ifle 8
         4: .line 137
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 5
            new java.lang.StringBuilder
            dup
            ldc "found system property, value="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* systemProp */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
         5: .line 138
      StackMap locals: java.lang.ClassLoader java.lang.String
      StackMap stack:
            aload 4 /* systemProp */
            aload 3 /* cl */
            iconst_1
            invokestatic org.apache.html.dom.ObjectFactory.newInstance:(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Object;
         6: areturn
        end local 4 // java.lang.String systemProp
         7: .line 140
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.ClassLoader
      StackMap stack: java.lang.SecurityException
            pop
         8: .line 145
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* factoryClassName */
        start local 4 // java.lang.String factoryClassName
         9: .line 147
            aload 1 /* propertiesFilename */
            ifnonnull 66
        10: .line 148
            aconst_null
            astore 5 /* propertiesFile */
        start local 5 // java.io.File propertiesFile
        11: .line 149
            iconst_0
            istore 6 /* propertiesFileExists */
        start local 6 // boolean propertiesFileExists
        12: .line 151
            ldc "java.home"
            invokestatic org.apache.html.dom.SecuritySupport.getSystemProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* javah */
        start local 7 // java.lang.String javah
        13: .line 152
            new java.lang.StringBuilder
            dup
            aload 7 /* javah */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 153
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "xerces.properties"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 152
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* propertiesFilename */
        16: .line 154
            new java.io.File
            dup
            aload 1 /* propertiesFilename */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* propertiesFile */
        17: .line 155
            aload 5 /* propertiesFile */
            invokestatic org.apache.html.dom.SecuritySupport.getFileExists:(Ljava/io/File;)Z
            istore 6 /* propertiesFileExists */
        end local 7 // java.lang.String javah
        18: .line 156
            goto 22
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.String java.io.File int
      StackMap stack: java.lang.SecurityException
        19: pop
        20: .line 158
            ldc -1
            putstatic org.apache.html.dom.ObjectFactory.fLastModified:J
        21: .line 159
            aconst_null
            putstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
        22: .line 162
      StackMap locals:
      StackMap stack:
            ldc Lorg/apache/html/dom/ObjectFactory;
            dup
            astore 7
            monitorenter
        23: .line 163
            iconst_0
            istore 8 /* loadProperties */
        start local 8 // boolean loadProperties
        24: .line 164
            aconst_null
            astore 9 /* fis */
        start local 9 // java.io.FileInputStream fis
        25: .line 167
            getstatic org.apache.html.dom.ObjectFactory.fLastModified:J
            lconst_0
            lcmp
            iflt 34
        26: .line 168
            iload 6 /* propertiesFileExists */
            ifeq 30
        27: .line 169
            getstatic org.apache.html.dom.ObjectFactory.fLastModified:J
            aload 5 /* propertiesFile */
            invokestatic org.apache.html.dom.SecuritySupport.getLastModified:(Ljava/io/File;)J
            dup2
            putstatic org.apache.html.dom.ObjectFactory.fLastModified:J
            lcmp
            ifge 30
        28: .line 170
            iconst_1
            istore 8 /* loadProperties */
        29: .line 171
            goto 37
        30: .line 173
      StackMap locals: java.lang.Class int java.io.FileInputStream
      StackMap stack:
            iload 6 /* propertiesFileExists */
            ifne 37
        31: .line 174
            ldc -1
            putstatic org.apache.html.dom.ObjectFactory.fLastModified:J
        32: .line 175
            aconst_null
            putstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
        33: .line 178
            goto 37
        34: .line 180
      StackMap locals:
      StackMap stack:
            iload 6 /* propertiesFileExists */
            ifeq 37
        35: .line 181
            iconst_1
            istore 8 /* loadProperties */
        36: .line 182
            aload 5 /* propertiesFile */
            invokestatic org.apache.html.dom.SecuritySupport.getLastModified:(Ljava/io/File;)J
            putstatic org.apache.html.dom.ObjectFactory.fLastModified:J
        37: .line 185
      StackMap locals:
      StackMap stack:
            iload 8 /* loadProperties */
            ifeq 55
        38: .line 187
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            putstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
        39: .line 188
            aload 5 /* propertiesFile */
            invokestatic org.apache.html.dom.SecuritySupport.getFileInputStream:(Ljava/io/File;)Ljava/io/FileInputStream;
            astore 9 /* fis */
        40: .line 189
            getstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
            aload 9 /* fis */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
        41: .line 191
            goto 55
      StackMap locals:
      StackMap stack: java.lang.Exception
        42: pop
        43: .line 192
            aconst_null
            putstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
        44: .line 193
            ldc -1
            putstatic org.apache.html.dom.ObjectFactory.fLastModified:J
        45: .line 200
            aload 9 /* fis */
            ifnull 59
        46: .line 202
            aload 9 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        47: .line 203
            goto 59
        48: .line 205
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 59
        49: .line 198
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        50: .line 200
            aload 9 /* fis */
            ifnull 54
        51: .line 202
            aload 9 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        52: .line 203
            goto 54
        53: .line 205
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.String java.io.File int java.lang.Class int java.io.FileInputStream java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        54: .line 207
      StackMap locals:
      StackMap stack:
            aload 10
            athrow
        55: .line 200
      StackMap locals:
      StackMap stack:
            aload 9 /* fis */
            ifnull 59
        56: .line 202
            aload 9 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        57: .line 203
            goto 59
        58: .line 205
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        end local 9 // java.io.FileInputStream fis
        end local 8 // boolean loadProperties
        59: .line 162
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        60: goto 63
      StackMap locals:
      StackMap stack: java.lang.Throwable
        61: aload 7
            monitorexit
        62: athrow
        63: .line 209
      StackMap locals:
      StackMap stack:
            getstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
            ifnull 87
        64: .line 210
            getstatic org.apache.html.dom.ObjectFactory.fXercesProperties:Ljava/util/Properties;
            aload 0 /* factoryId */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* factoryClassName */
        end local 6 // boolean propertiesFileExists
        end local 5 // java.io.File propertiesFile
        65: .line 212
            goto 87
        66: .line 213
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* fis */
        start local 5 // java.io.FileInputStream fis
        67: .line 215
            new java.io.File
            dup
            aload 1 /* propertiesFilename */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.html.dom.SecuritySupport.getFileInputStream:(Ljava/io/File;)Ljava/io/FileInputStream;
            astore 5 /* fis */
        68: .line 216
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 6 /* props */
        start local 6 // java.util.Properties props
        69: .line 217
            aload 6 /* props */
            aload 5 /* fis */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
        70: .line 218
            aload 6 /* props */
            aload 0 /* factoryId */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* factoryClassName */
        end local 6 // java.util.Properties props
        71: .line 219
            goto 83
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.String java.io.FileInputStream
      StackMap stack: java.lang.Exception
        72: pop
        73: .line 226
            aload 5 /* fis */
            ifnull 87
        74: .line 228
            aload 5 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        75: .line 229
            goto 87
        76: .line 231
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 87
        77: .line 224
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        78: .line 226
            aload 5 /* fis */
            ifnull 82
        79: .line 228
            aload 5 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        80: .line 229
            goto 82
        81: .line 231
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.String java.io.FileInputStream top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        82: .line 233
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        83: .line 226
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.String java.io.FileInputStream
      StackMap stack:
            aload 5 /* fis */
            ifnull 87
        84: .line 228
            aload 5 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        85: .line 229
            goto 87
        86: .line 231
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        end local 5 // java.io.FileInputStream fis
        87: .line 235
      StackMap locals:
      StackMap stack:
            aload 4 /* factoryClassName */
            ifnull 90
        88: .line 236
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 89
            new java.lang.StringBuilder
            dup
            ldc "found in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* propertiesFilename */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", value="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* factoryClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
        89: .line 237
      StackMap locals:
      StackMap stack:
            aload 4 /* factoryClassName */
            aload 3 /* cl */
            iconst_1
            invokestatic org.apache.html.dom.ObjectFactory.newInstance:(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Object;
            areturn
        90: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* factoryId */
            invokestatic org.apache.html.dom.ObjectFactory.findJarServiceProvider:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* provider */
        start local 5 // java.lang.Object provider
        91: .line 242
            aload 5 /* provider */
            ifnull 93
        92: .line 243
            aload 5 /* provider */
            areturn
        93: .line 246
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* fallbackClassName */
            ifnonnull 97
        94: .line 247
            new org.apache.html.dom.ObjectFactory$ConfigurationError
            dup
        95: .line 248
            new java.lang.StringBuilder
            dup
            ldc "Provider for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* factoryId */
            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;
            aconst_null
        96: .line 247
            invokespecial org.apache.html.dom.ObjectFactory$ConfigurationError.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        97: .line 251
      StackMap locals:
      StackMap stack:
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 98
            new java.lang.StringBuilder
            dup
            ldc "using fallback, value="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* fallbackClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
        98: .line 252
      StackMap locals:
      StackMap stack:
            aload 2 /* fallbackClassName */
            aload 3 /* cl */
            iconst_1
            invokestatic org.apache.html.dom.ObjectFactory.newInstance:(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object provider
        end local 4 // java.lang.String factoryClassName
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.lang.String fallbackClassName
        end local 1 // java.lang.String propertiesFilename
        end local 0 // java.lang.String factoryId
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   99     0             factoryId  Ljava/lang/String;
            0   99     1    propertiesFilename  Ljava/lang/String;
            0   99     2     fallbackClassName  Ljava/lang/String;
            2   99     3                    cl  Ljava/lang/ClassLoader;
            3    7     4            systemProp  Ljava/lang/String;
            9   99     4      factoryClassName  Ljava/lang/String;
           11   65     5        propertiesFile  Ljava/io/File;
           12   65     6  propertiesFileExists  Z
           13   18     7                 javah  Ljava/lang/String;
           24   59     8        loadProperties  Z
           25   59     9                   fis  Ljava/io/FileInputStream;
           67   87     5                   fis  Ljava/io/FileInputStream;
           69   71     6                 props  Ljava/util/Properties;
           91   99     5              provider  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.SecurityException
          12    18      19  Class java.lang.SecurityException
          25    41      42  Class java.lang.Exception
          46    47      48  Class java.io.IOException
          25    45      49  any
          51    52      53  Class java.io.IOException
          56    57      58  Class java.io.IOException
          23    60      61  any
          61    62      61  any
          67    71      72  Class java.lang.Exception
          74    75      76  Class java.io.IOException
          67    73      77  any
          79    80      81  Class java.io.IOException
          84    85      86  Class java.io.IOException
    Exceptions:
      throws org.apache.html.dom.ObjectFactory$ConfigurationError
    MethodParameters:
                    Name  Flags
      factoryId           
      propertiesFilename  
      fallbackClassName   

  private static boolean isDebugEnabled();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 262
            ldc "xerces.debug"
            invokestatic org.apache.html.dom.SecuritySupport.getSystemProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* val */
        start local 0 // java.lang.String val
         1: .line 264
            aload 0 /* val */
            ifnull 2
            ldc "false"
            aload 0 /* val */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            iconst_1
            ireturn
      StackMap locals: java.lang.String
      StackMap stack:
         2: iconst_0
         3: ireturn
        end local 0 // java.lang.String val
         4: .line 266
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         5: .line 267
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0   val  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.SecurityException

  private static void debugPrintln(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 272
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 2
         1: .line 273
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "XERCES: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 275
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  static java.lang.ClassLoader findClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=0
         0: .line 286
            invokestatic org.apache.html.dom.SecuritySupport.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 0 /* context */
        start local 0 // java.lang.ClassLoader context
         1: .line 287
            invokestatic org.apache.html.dom.SecuritySupport.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* system */
        start local 1 // java.lang.ClassLoader system
         2: .line 289
            aload 1 /* system */
            astore 2 /* chain */
        start local 2 // java.lang.ClassLoader chain
         3: .line 291
      StackMap locals: java.lang.ClassLoader java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack:
            aload 0 /* context */
            aload 2 /* chain */
            if_acmpne 13
         4: .line 300
            ldc Lorg/apache/html/dom/ObjectFactory;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* current */
        start local 3 // java.lang.ClassLoader current
         5: .line 302
            aload 1 /* system */
            astore 2 /* chain */
         6: .line 304
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* current */
            aload 2 /* chain */
            if_acmpne 8
         7: .line 307
            aload 1 /* system */
            areturn
         8: .line 309
      StackMap locals:
      StackMap stack:
            aload 2 /* chain */
            ifnonnull 10
         9: .line 310
            goto 12
        10: .line 312
      StackMap locals:
      StackMap stack:
            aload 2 /* chain */
            invokestatic org.apache.html.dom.SecuritySupport.getParentClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 2 /* chain */
        11: .line 303
            goto 6
        12: .line 317
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            areturn
        end local 3 // java.lang.ClassLoader current
        13: .line 320
      StackMap locals:
      StackMap stack:
            aload 2 /* chain */
            ifnonnull 15
        14: .line 322
            goto 17
        15: .line 327
      StackMap locals:
      StackMap stack:
            aload 2 /* chain */
            invokestatic org.apache.html.dom.SecuritySupport.getParentClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 2 /* chain */
        16: .line 290
            goto 3
        17: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            areturn
        end local 2 // java.lang.ClassLoader chain
        end local 1 // java.lang.ClassLoader system
        end local 0 // java.lang.ClassLoader context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1   18     0  context  Ljava/lang/ClassLoader;
            2   18     1   system  Ljava/lang/ClassLoader;
            3   18     2    chain  Ljava/lang/ClassLoader;
            5   13     3  current  Ljava/lang/ClassLoader;
    Exceptions:
      throws org.apache.html.dom.ObjectFactory$ConfigurationError

  static java.lang.Object newInstance(java.lang.String, java.lang.ClassLoader, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.ClassLoader cl
        start local 2 // boolean doFallback
         0: .line 344
            aload 0 /* className */
            aload 1 /* cl */
            iload 2 /* doFallback */
            invokestatic org.apache.html.dom.ObjectFactory.findProviderClass:(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
            astore 3 /* providerClass */
        start local 3 // java.lang.Class providerClass
         1: .line 345
            aload 3 /* providerClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 4 /* instance */
        start local 4 // java.lang.Object instance
         2: .line 346
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 5
            new java.lang.StringBuilder
            dup
            ldc "created new instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* providerClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 347
            ldc " using ClassLoader: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* cl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 346
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
         5: .line 348
      StackMap locals: java.lang.Class java.lang.Object
      StackMap stack:
            aload 4 /* instance */
         6: areturn
        end local 4 // java.lang.Object instance
        end local 3 // java.lang.Class providerClass
         7: .line 349
      StackMap locals: java.lang.String java.lang.ClassLoader int
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* x */
        start local 3 // java.lang.ClassNotFoundException x
         8: .line 350
            new org.apache.html.dom.ObjectFactory$ConfigurationError
            dup
         9: .line 351
            new java.lang.StringBuilder
            dup
            ldc "Provider "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* x */
        10: .line 350
            invokespecial org.apache.html.dom.ObjectFactory$ConfigurationError.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.ClassNotFoundException x
        11: .line 352
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* x */
        start local 3 // java.lang.Exception x
        12: .line 353
            new org.apache.html.dom.ObjectFactory$ConfigurationError
            dup
        13: .line 354
            new java.lang.StringBuilder
            dup
            ldc "Provider "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " could not be instantiated: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* x */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 355
            aload 3 /* x */
        15: .line 353
            invokespecial org.apache.html.dom.ObjectFactory$ConfigurationError.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.Exception x
        end local 2 // boolean doFallback
        end local 1 // java.lang.ClassLoader cl
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0      className  Ljava/lang/String;
            0   16     1             cl  Ljava/lang/ClassLoader;
            0   16     2     doFallback  Z
            1    7     3  providerClass  Ljava/lang/Class;
            2    7     4       instance  Ljava/lang/Object;
            8   11     3              x  Ljava/lang/ClassNotFoundException;
           12   16     3              x  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.ClassNotFoundException
           0     6      11  Class java.lang.Exception
    Exceptions:
      throws org.apache.html.dom.ObjectFactory$ConfigurationError
    MethodParameters:
            Name  Flags
      className   
      cl          
      doFallback  

  static java.lang.Class findProviderClass(java.lang.String, java.lang.ClassLoader, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.ClassLoader cl
        start local 2 // boolean doFallback
         0: .line 368
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* security */
        start local 3 // java.lang.SecurityManager security
         1: .line 369
            aload 3 /* security */
            ifnull 6
         2: .line 370
            aload 0 /* className */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* lastDot */
        start local 4 // int lastDot
         3: .line 371
            aload 0 /* className */
            astore 5 /* packageName */
        start local 5 // java.lang.String packageName
         4: .line 372
            iload 4 /* lastDot */
            iconst_m1
            if_icmpeq 5
            aload 0 /* className */
            iconst_0
            iload 4 /* lastDot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* packageName */
         5: .line 373
      StackMap locals: java.lang.SecurityManager int java.lang.String
      StackMap stack:
            aload 3 /* security */
            aload 5 /* packageName */
            invokevirtual java.lang.SecurityManager.checkPackageAccess:(Ljava/lang/String;)V
        end local 5 // java.lang.String packageName
        end local 4 // int lastDot
         6: .line 376
      StackMap locals:
      StackMap stack:
            aload 1 /* cl */
            ifnonnull 9
         7: .line 386
            aload 0 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* providerClass */
        start local 4 // java.lang.Class providerClass
         8: .line 387
            goto 23
        end local 4 // java.lang.Class providerClass
         9: .line 389
      StackMap locals:
      StackMap stack:
            aload 1 /* cl */
            aload 0 /* className */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* providerClass */
        start local 4 // java.lang.Class providerClass
        10: .line 390
            goto 23
        end local 4 // java.lang.Class providerClass
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        11: astore 5 /* x */
        start local 5 // java.lang.ClassNotFoundException x
        12: .line 391
            iload 2 /* doFallback */
            ifeq 22
        13: .line 393
            ldc Lorg/apache/html/dom/ObjectFactory;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 6 /* current */
        start local 6 // java.lang.ClassLoader current
        14: .line 394
            aload 6 /* current */
            ifnonnull 17
        15: .line 395
            aload 0 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* providerClass */
        start local 4 // java.lang.Class providerClass
        16: .line 396
            goto 23
        end local 4 // java.lang.Class providerClass
      StackMap locals: java.lang.String java.lang.ClassLoader int java.lang.SecurityManager top java.lang.ClassNotFoundException java.lang.ClassLoader
      StackMap stack:
        17: aload 1 /* cl */
            aload 6 /* current */
            if_acmpeq 21
        18: .line 397
            aload 6 /* current */
            astore 1 /* cl */
        19: .line 398
            aload 1 /* cl */
            aload 0 /* className */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* providerClass */
        start local 4 // java.lang.Class providerClass
        20: .line 399
            goto 23
        end local 4 // java.lang.Class providerClass
        21: .line 400
      StackMap locals:
      StackMap stack:
            aload 5 /* x */
            athrow
        end local 6 // java.lang.ClassLoader current
        22: .line 403
      StackMap locals:
      StackMap stack:
            aload 5 /* x */
            athrow
        end local 5 // java.lang.ClassNotFoundException x
        start local 4 // java.lang.Class providerClass
        23: .line 408
      StackMap locals: java.lang.String java.lang.ClassLoader int java.lang.SecurityManager java.lang.Class
      StackMap stack:
            aload 4 /* providerClass */
            areturn
        end local 4 // java.lang.Class providerClass
        end local 3 // java.lang.SecurityManager security
        end local 2 // boolean doFallback
        end local 1 // java.lang.ClassLoader cl
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0      className  Ljava/lang/String;
            0   24     1             cl  Ljava/lang/ClassLoader;
            0   24     2     doFallback  Z
            1   24     3       security  Ljava/lang/SecurityManager;
            3    6     4        lastDot  I
            4    6     5    packageName  Ljava/lang/String;
            8    9     4  providerClass  Ljava/lang/Class;
           10   11     4  providerClass  Ljava/lang/Class;
           16   17     4  providerClass  Ljava/lang/Class;
           20   21     4  providerClass  Ljava/lang/Class;
           23   24     4  providerClass  Ljava/lang/Class;
           12   23     5              x  Ljava/lang/ClassNotFoundException;
           14   22     6        current  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.lang.ClassNotFoundException, org.apache.html.dom.ObjectFactory$ConfigurationError
    MethodParameters:
            Name  Flags
      className   
      cl          
      doFallback  

  private static java.lang.Object findJarServiceProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // java.lang.String factoryId
         0: .line 419
            new java.lang.StringBuilder
            dup
            ldc "META-INF/services/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* factoryId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* serviceId */
        start local 1 // java.lang.String serviceId
         1: .line 420
            aconst_null
            astore 2 /* is */
        start local 2 // java.io.InputStream is
         2: .line 423
            invokestatic org.apache.html.dom.ObjectFactory.findClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         3: .line 425
            aload 3 /* cl */
            aload 1 /* serviceId */
            invokestatic org.apache.html.dom.SecuritySupport.getResourceAsStream:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* is */
         4: .line 428
            aload 2 /* is */
            ifnonnull 9
         5: .line 429
            ldc Lorg/apache/html/dom/ObjectFactory;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* current */
        start local 4 // java.lang.ClassLoader current
         6: .line 430
            aload 3 /* cl */
            aload 4 /* current */
            if_acmpeq 9
         7: .line 431
            aload 4 /* current */
            astore 3 /* cl */
         8: .line 432
            aload 3 /* cl */
            aload 1 /* serviceId */
            invokestatic org.apache.html.dom.SecuritySupport.getResourceAsStream:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* is */
        end local 4 // java.lang.ClassLoader current
         9: .line 436
      StackMap locals: java.lang.String java.io.InputStream java.lang.ClassLoader
      StackMap stack:
            aload 2 /* is */
            ifnonnull 11
        10: .line 438
            aconst_null
            areturn
        11: .line 441
      StackMap locals:
      StackMap stack:
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 14
            new java.lang.StringBuilder
            dup
            ldc "found jar resource="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* serviceId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 442
            ldc " using ClassLoader: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* cl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 441
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
        14: .line 462
      StackMap locals:
      StackMap stack:
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 2 /* is */
            ldc "UTF-8"
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            bipush 80
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;I)V
            astore 4 /* rd */
        start local 4 // java.io.BufferedReader rd
        15: .line 463
            goto 18
        end local 4 // java.io.BufferedReader rd
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
        16: pop
        17: .line 464
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 2 /* is */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            bipush 80
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;I)V
            astore 4 /* rd */
        start local 4 // java.io.BufferedReader rd
        18: .line 467
      StackMap locals: java.io.BufferedReader
      StackMap stack:
            aconst_null
            astore 5 /* factoryClassName */
        start local 5 // java.lang.String factoryClassName
        19: .line 471
            aload 4 /* rd */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 5 /* factoryClassName */
        20: .line 472
            goto 31
      StackMap locals: java.lang.String java.lang.String java.io.InputStream java.lang.ClassLoader java.io.BufferedReader java.lang.String
      StackMap stack: java.io.IOException
        21: pop
        22: .line 479
            aload 4 /* rd */
            invokevirtual java.io.BufferedReader.close:()V
        23: .line 480
            goto 25
        24: .line 482
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        25: .line 474
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        26: .line 476
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        27: .line 479
            aload 4 /* rd */
            invokevirtual java.io.BufferedReader.close:()V
        28: .line 480
            goto 30
        29: .line 482
      StackMap locals: java.lang.String java.lang.String java.io.InputStream java.lang.ClassLoader java.io.BufferedReader java.lang.String java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        30: .line 483
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        31: .line 479
      StackMap locals:
      StackMap stack:
            aload 4 /* rd */
            invokevirtual java.io.BufferedReader.close:()V
        32: .line 480
            goto 34
        33: .line 482
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        34: .line 485
      StackMap locals:
      StackMap stack:
            aload 5 /* factoryClassName */
            ifnull 40
        35: .line 486
            ldc ""
            aload 5 /* factoryClassName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 40
        36: .line 487
            getstatic org.apache.html.dom.ObjectFactory.DEBUG:Z
            ifeq 39
            new java.lang.StringBuilder
            dup
            ldc "found in resource, value="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        37: .line 488
            aload 5 /* factoryClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 487
            invokestatic org.apache.html.dom.ObjectFactory.debugPrintln:(Ljava/lang/String;)V
        39: .line 494
      StackMap locals:
      StackMap stack:
            aload 5 /* factoryClassName */
            aload 3 /* cl */
            iconst_0
            invokestatic org.apache.html.dom.ObjectFactory.newInstance:(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Object;
            areturn
        40: .line 498
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.lang.String factoryClassName
        end local 4 // java.io.BufferedReader rd
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.io.InputStream is
        end local 1 // java.lang.String serviceId
        end local 0 // java.lang.String factoryId
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   41     0         factoryId  Ljava/lang/String;
            1   41     1         serviceId  Ljava/lang/String;
            2   41     2                is  Ljava/io/InputStream;
            3   41     3                cl  Ljava/lang/ClassLoader;
            6    9     4           current  Ljava/lang/ClassLoader;
           15   16     4                rd  Ljava/io/BufferedReader;
           18   41     4                rd  Ljava/io/BufferedReader;
           19   41     5  factoryClassName  Ljava/lang/String;
      Exception table:
        from    to  target  type
          14    15      16  Class java.io.UnsupportedEncodingException
          19    20      21  Class java.io.IOException
          22    23      24  Class java.io.IOException
          19    22      26  any
          27    28      29  Class java.io.IOException
          31    32      33  Class java.io.IOException
    Exceptions:
      throws org.apache.html.dom.ObjectFactory$ConfigurationError
    MethodParameters:
           Name  Flags
      factoryId  
}
SourceFile: "ObjectFactory.java"
NestMembers:
  org.apache.html.dom.ObjectFactory$ConfigurationError
InnerClasses:
  final ConfigurationError = org.apache.html.dom.ObjectFactory$ConfigurationError of org.apache.html.dom.ObjectFactory