final class com.sun.jndi.ldap.Obj$LoaderInputStream extends java.io.ObjectInputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.Obj$LoaderInputStream
  super_class: java.io.ObjectInputStream
{
  private java.lang.ClassLoader classLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.io.InputStream, java.lang.ClassLoader);
    descriptor: (Ljava/io/InputStream;Ljava/lang/ClassLoader;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.Obj$LoaderInputStream this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.ClassLoader cl
         0: .line 610
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
         1: .line 611
            aload 0 /* this */
            aload 2 /* cl */
            putfield com.sun.jndi.ldap.Obj$LoaderInputStream.classLoader:Ljava/lang/ClassLoader;
         2: .line 612
            return
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.io.InputStream in
        end local 0 // com.sun.jndi.ldap.Obj$LoaderInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jndi/ldap/Obj$LoaderInputStream;
            0    3     1    in  Ljava/io/InputStream;
            0    3     2    cl  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      cl    

  protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass);
    descriptor: (Ljava/io/ObjectStreamClass;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.Obj$LoaderInputStream this
        start local 1 // java.io.ObjectStreamClass desc
         0: .line 619
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Obj$LoaderInputStream.classLoader:Ljava/lang/ClassLoader;
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.getName:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
         1: areturn
         2: .line 620
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         3: .line 621
            aload 0 /* this */
            aload 1 /* desc */
            invokespecial java.io.ObjectInputStream.resolveClass:(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;
            areturn
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // com.sun.jndi.ldap.Obj$LoaderInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/Obj$LoaderInputStream;
            0    4     1  desc  Ljava/io/ObjectStreamClass;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    Signature: (Ljava/io/ObjectStreamClass;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      desc  

  protected java.lang.Class<?> resolveProxyClass(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.sun.jndi.ldap.Obj$LoaderInputStream this
        start local 1 // java.lang.String[] interfaces
         0: .line 627
            aconst_null
            astore 2 /* nonPublicLoader */
        start local 2 // java.lang.ClassLoader nonPublicLoader
         1: .line 628
            iconst_0
            istore 3 /* hasNonPublicInterface */
        start local 3 // boolean hasNonPublicInterface
         2: .line 631
            aload 1 /* interfaces */
            arraylength
            anewarray java.lang.Class
            astore 4 /* classObjs */
        start local 4 // java.lang.Class[] classObjs
         3: .line 632
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 16
         5: .line 633
      StackMap locals: com.sun.jndi.ldap.Obj$LoaderInputStream java.lang.String[] java.lang.ClassLoader int java.lang.Class[] int
      StackMap stack:
            aload 1 /* interfaces */
            iload 5 /* i */
            aaload
            iconst_0
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Obj$LoaderInputStream.classLoader:Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 6 /* cl */
        start local 6 // java.lang.Class cl
         6: .line 634
            aload 6 /* cl */
            invokevirtual java.lang.Class.getModifiers:()I
            iconst_1
            iand
            ifne 14
         7: .line 635
            iload 3 /* hasNonPublicInterface */
            ifeq 12
         8: .line 636
            aload 2 /* nonPublicLoader */
            aload 6 /* cl */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpeq 14
         9: .line 637
            new java.lang.IllegalAccessError
            dup
        10: .line 638
            ldc "conflicting non-public interface class loaders"
        11: .line 637
            invokespecial java.lang.IllegalAccessError.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 641
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 6 /* cl */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* nonPublicLoader */
        13: .line 642
            iconst_1
            istore 3 /* hasNonPublicInterface */
        14: .line 645
      StackMap locals:
      StackMap stack:
            aload 4 /* classObjs */
            iload 5 /* i */
            aload 6 /* cl */
            aastore
        end local 6 // java.lang.Class cl
        15: .line 632
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            aload 1 /* interfaces */
            arraylength
            if_icmplt 5
        end local 5 // int i
        17: .line 648
            iload 3 /* hasNonPublicInterface */
            ifeq 19
        18: .line 649
            aload 2 /* nonPublicLoader */
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 0 /* this */
            getfield com.sun.jndi.ldap.Obj$LoaderInputStream.classLoader:Ljava/lang/ClassLoader;
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
        20: aload 4 /* classObjs */
        21: .line 648
            invokestatic java.lang.reflect.Proxy.getProxyClass:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
        22: areturn
        23: .line 650
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
        24: .line 651
            new java.lang.ClassNotFoundException
            dup
            aconst_null
            aload 5 /* e */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        end local 4 // java.lang.Class[] classObjs
        end local 3 // boolean hasNonPublicInterface
        end local 2 // java.lang.ClassLoader nonPublicLoader
        end local 1 // java.lang.String[] interfaces
        end local 0 // com.sun.jndi.ldap.Obj$LoaderInputStream this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   25     0                   this  Lcom/sun/jndi/ldap/Obj$LoaderInputStream;
            0   25     1             interfaces  [Ljava/lang/String;
            1   25     2        nonPublicLoader  Ljava/lang/ClassLoader;
            2   25     3  hasNonPublicInterface  Z
            3   25     4              classObjs  [Ljava/lang/Class;
            4   17     5                      i  I
            6   15     6                     cl  Ljava/lang/Class<*>;
           24   25     5                      e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          17    22      23  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    Signature: ([Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      interfaces  
}
SourceFile: "Obj.java"
NestHost: com.sun.jndi.ldap.Obj
InnerClasses:
  private final LoaderInputStream = com.sun.jndi.ldap.Obj$LoaderInputStream of com.sun.jndi.ldap.Obj