public class org.jruby.javasupport.proxy.JavaProxyClass extends org.jruby.javasupport.proxy.JavaProxyReflectionObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.proxy.JavaProxyClass
  super_class: org.jruby.javasupport.proxy.JavaProxyReflectionObject
{
  private final java.lang.Class proxyClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<org.jruby.javasupport.proxy.JavaProxyMethod> methods;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/jruby/javasupport/proxy/JavaProxyMethod;>;

  private final java.util.HashMap<java.lang.String, java.util.ArrayList<org.jruby.javasupport.proxy.JavaProxyMethod>> methodMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/util/ArrayList<Lorg/jruby/javasupport/proxy/JavaProxyMethod;>;>;

  private transient org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors;
    descriptor: [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static final java.util.HashSet<java.lang.String> EXCLUDE_MODULES;
    descriptor: Ljava/util/HashSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/HashSet<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 568
            new java.util.HashSet
            dup
            bipush 8
            fconst_1
            invokespecial java.util.HashSet.<init>:(IF)V
            putstatic org.jruby.javasupport.proxy.JavaProxyClass.EXCLUDE_MODULES:Ljava/util/HashSet;
         1: .line 570
            getstatic org.jruby.javasupport.proxy.JavaProxyClass.EXCLUDE_MODULES:Ljava/util/HashSet;
            ldc "Kernel"
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 571
            getstatic org.jruby.javasupport.proxy.JavaProxyClass.EXCLUDE_MODULES:Ljava/util/HashSet;
            ldc "Java"
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 572
            getstatic org.jruby.javasupport.proxy.JavaProxyClass.EXCLUDE_MODULES:Ljava/util/HashSet;
            ldc "JavaProxyMethods"
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         4: .line 573
            getstatic org.jruby.javasupport.proxy.JavaProxyClass.EXCLUDE_MODULES:Ljava/util/HashSet;
            ldc "Enumerable"
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         5: .line 574
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
        start local 1 // java.lang.Class proxyClass
         0: .line 97
            aload 0 /* this */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.getThreadLocalRuntime:()Lorg/jruby/Ruby;
            aload 1 /* proxyClass */
            invokespecial org.jruby.javasupport.proxy.JavaProxyClass.<init>:(Lorg/jruby/Ruby;Ljava/lang/Class;)V
         1: .line 98
            return
        end local 1 // java.lang.Class proxyClass
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            0    2     1  proxyClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      proxyClass  final

  private void <init>(org.jruby.Ruby, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.lang.Class proxyClass
         0: .line 101
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            ldc "Java"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            ldc "JavaProxyClass"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            invokespecial org.jruby.javasupport.proxy.JavaProxyReflectionObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 92
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.jruby.javasupport.proxy.JavaProxyClass.methods:Ljava/util/ArrayList;
         2: .line 93
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.jruby.javasupport.proxy.JavaProxyClass.methodMap:Ljava/util/HashMap;
         3: .line 102
            aload 0 /* this */
            aload 2 /* proxyClass */
            putfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
         4: .line 103
            return
        end local 2 // java.lang.Class proxyClass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            0    5     1     runtime  Lorg/jruby/Ruby;
            0    5     2  proxyClass  Ljava/lang/Class<*>;
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      runtime     final
      proxyClass  final

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
        start local 1 // java.lang.Object other
         0: .line 107
            aload 1 /* other */
            instanceof org.jruby.javasupport.proxy.JavaProxyClass
            ifeq 3
         1: .line 108
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            aload 1 /* other */
            checkcast org.jruby.javasupport.proxy.JavaProxyClass
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            if_acmpne 3
         2: .line 107
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            0    4     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 113
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            invokevirtual java.lang.Object.hashCode:()I
            ireturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;

  public java.lang.Object getValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 117
            aload 0 /* this */
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;

  private static org.jruby.Ruby getThreadLocalRuntime();
    descriptor: ()Lorg/jruby/Ruby;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 121
            getstatic org.jruby.javasupport.proxy.JavaProxyClassFactory.runtimeTLS:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.jruby.Ruby
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.jruby.javasupport.proxy.JavaProxyClass getProxyClass(org.jruby.Ruby, java.lang.Class, java.lang.Class[], java.util.Set<java.lang.String>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class superClass
        start local 2 // java.lang.Class[] interfaces
        start local 3 // java.util.Set names
         0: .line 127
            aload 0 /* runtime */
            aload 1 /* superClass */
            aload 2 /* interfaces */
            aload 3 /* names */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.newProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 3 // java.util.Set names
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.Class superClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     runtime  Lorg/jruby/Ruby;
            0    1     1  superClass  Ljava/lang/Class;
            0    1     2  interfaces  [Ljava/lang/Class;
            0    1     3       names  Ljava/util/Set<Ljava/lang/String;>;
    Exceptions:
      throws java.lang.reflect.InvocationTargetException
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set<Ljava/lang/String;>;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      runtime     final
      superClass  
      interfaces  
      names       

  public static org.jruby.javasupport.proxy.JavaProxyClass getProxyClass(org.jruby.Ruby, java.lang.Class, java.lang.Class[]);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class superClass
        start local 2 // java.lang.Class[] interfaces
         0: .line 133
            aload 0 /* runtime */
            aload 1 /* superClass */
            aload 2 /* interfaces */
            aconst_null
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.newProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.Class superClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     runtime  Lorg/jruby/Ruby;
            0    1     1  superClass  Ljava/lang/Class;
            0    1     2  interfaces  [Ljava/lang/Class;
    Exceptions:
      throws java.lang.reflect.InvocationTargetException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      runtime     
      superClass  
      interfaces  

  public static org.jruby.javasupport.proxy.JavaProxyClass newProxyClass(org.jruby.Ruby, java.lang.Class, java.lang.Class[], java.util.Set<java.lang.String>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class superClass
        start local 2 // java.lang.Class[] interfaces
        start local 3 // java.util.Set names
         0: .line 148
            aload 1 /* superClass */
            ifnonnull 1
            ldc Ljava/lang/Object;
            astore 1 /* superClass */
         1: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* interfaces */
            ifnonnull 2
            getstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            astore 2 /* interfaces */
         2: .line 150
      StackMap locals:
      StackMap stack:
            aload 3 /* names */
            ifnonnull 3
            getstatic java.util.Collections.EMPTY_SET:Ljava/util/Set;
            astore 3 /* names */
         3: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* superClass */
            aload 2 /* interfaces */
            aload 3 /* names */
            invokestatic org.jruby.javasupport.JavaSupport$ProxyClassKey.getInstance:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
            astore 4 /* classKey */
        start local 4 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
         4: .line 154
            aload 0 /* runtime */
            aload 4 /* classKey */
            invokestatic org.jruby.javasupport.JavaSupportImpl.fetchJavaProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            astore 5 /* proxyClass */
        start local 5 // org.jruby.javasupport.proxy.JavaProxyClass proxyClass
         5: .line 155
            aload 5 /* proxyClass */
            ifnull 6
            aload 5 /* proxyClass */
            areturn
         6: .line 157
      StackMap locals: org.jruby.javasupport.JavaSupport$ProxyClassKey org.jruby.javasupport.proxy.JavaProxyClass
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
            astore 6 /* loader */
        start local 6 // java.lang.ClassLoader loader
         7: .line 158
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaProxyClassFactory:()Lorg/jruby/javasupport/proxy/JavaProxyClassFactory;
            aload 0 /* runtime */
            aload 6 /* loader */
            checkcast org.jruby.util.ClassDefiningClassLoader
            aconst_null
            aload 1 /* superClass */
            aload 2 /* interfaces */
            aload 3 /* names */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClassFactory.genProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/util/ClassDefiningClassLoader;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            astore 5 /* proxyClass */
         8: .line 159
            aload 0 /* runtime */
            aload 4 /* classKey */
            aload 5 /* proxyClass */
            invokestatic org.jruby.javasupport.JavaSupportImpl.saveJavaProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;Lorg/jruby/javasupport/proxy/JavaProxyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 6 // java.lang.ClassLoader loader
        end local 5 // org.jruby.javasupport.proxy.JavaProxyClass proxyClass
        end local 4 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        end local 3 // java.util.Set names
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.Class superClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0     runtime  Lorg/jruby/Ruby;
            0    9     1  superClass  Ljava/lang/Class;
            0    9     2  interfaces  [Ljava/lang/Class;
            0    9     3       names  Ljava/util/Set<Ljava/lang/String;>;
            4    9     4    classKey  Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
            5    9     5  proxyClass  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            7    9     6      loader  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.reflect.InvocationTargetException
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set<Ljava/lang/String;>;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    MethodParameters:
            Name  Flags
      runtime     final
      superClass  
      interfaces  
      names       

  public static org.jruby.javasupport.proxy.JavaProxyClass newProxyClass(org.jruby.Ruby, java.lang.Class, java.lang.Class[]);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class superClass
        start local 2 // java.lang.Class[] interfaces
         0: .line 164
            aload 0 /* runtime */
            aload 1 /* superClass */
            aload 2 /* interfaces */
            aconst_null
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.newProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.Class superClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     runtime  Lorg/jruby/Ruby;
            0    1     1  superClass  Ljava/lang/Class;
            0    1     2  interfaces  [Ljava/lang/Class;
    Exceptions:
      throws java.lang.reflect.InvocationTargetException
    MethodParameters:
            Name  Flags
      runtime     
      superClass  
      interfaces  

  public static java.lang.Object newProxyInstance(org.jruby.Ruby, java.lang.Class, java.lang.Class[], java.lang.Class[], java.lang.Object[], org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;[Ljava/lang/Class;[Ljava/lang/Object;Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=6
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class superClass
        start local 2 // java.lang.Class[] interfaces
        start local 3 // java.lang.Class[] constructorParameters
        start local 4 // java.lang.Object[] constructorArgs
        start local 5 // org.jruby.javasupport.proxy.JavaProxyInvocationHandler handler
         0: .line 173
            aload 0 /* runtime */
            aload 1 /* superClass */
            aload 2 /* interfaces */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.newProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            astore 6 /* proxyClass */
        start local 6 // org.jruby.javasupport.proxy.JavaProxyClass proxyClass
         1: .line 174
            aload 6 /* proxyClass */
         2: .line 175
            aload 3 /* constructorParameters */
            ifnonnull 3
            getstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            goto 4
      StackMap locals: org.jruby.Ruby java.lang.Class java.lang.Class[] java.lang.Class[] java.lang.Object[] org.jruby.javasupport.proxy.JavaProxyInvocationHandler org.jruby.javasupport.proxy.JavaProxyClass
      StackMap stack: org.jruby.javasupport.proxy.JavaProxyClass
         3: aload 3 /* constructorParameters */
         4: .line 174
      StackMap locals: org.jruby.Ruby java.lang.Class java.lang.Class[] java.lang.Class[] java.lang.Object[] org.jruby.javasupport.proxy.JavaProxyInvocationHandler org.jruby.javasupport.proxy.JavaProxyClass
      StackMap stack: org.jruby.javasupport.proxy.JavaProxyClass java.lang.Class[]
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getConstructor:([Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 7 /* constructor */
        start local 7 // org.jruby.javasupport.proxy.JavaProxyConstructor constructor
         5: .line 177
            aload 7 /* constructor */
            aload 4 /* constructorArgs */
            aload 5 /* handler */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyConstructor.newInstance:([Ljava/lang/Object;Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)Ljava/lang/Object;
            areturn
        end local 7 // org.jruby.javasupport.proxy.JavaProxyConstructor constructor
        end local 6 // org.jruby.javasupport.proxy.JavaProxyClass proxyClass
        end local 5 // org.jruby.javasupport.proxy.JavaProxyInvocationHandler handler
        end local 4 // java.lang.Object[] constructorArgs
        end local 3 // java.lang.Class[] constructorParameters
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.Class superClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                runtime  Lorg/jruby/Ruby;
            0    6     1             superClass  Ljava/lang/Class;
            0    6     2             interfaces  [Ljava/lang/Class;
            0    6     3  constructorParameters  [Ljava/lang/Class;
            0    6     4        constructorArgs  [Ljava/lang/Object;
            0    6     5                handler  Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
            1    6     6             proxyClass  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            5    6     7            constructor  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.SecurityException, java.lang.NoSuchMethodException
    MethodParameters:
                       Name  Flags
      runtime                
      superClass             
      interfaces             
      constructorParameters  
      constructorArgs        
      handler                

  public java.lang.Class getSuperclass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 181
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;

  public java.lang.Class[] getInterfaces();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 185
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 1 /* ifaces */
        start local 1 // java.lang.Class[] ifaces
         1: .line 186
            aload 1 /* ifaces */
            arraylength
            iconst_1
            isub
            anewarray java.lang.Class
            astore 2 /* result */
        start local 2 // java.lang.Class[] result
         2: .line 187
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: iconst_0
            istore 4 /* j */
        start local 4 // int j
         4: goto 8
         5: .line 188
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyClass java.lang.Class[] java.lang.Class[] int int
      StackMap stack:
            aload 1 /* ifaces */
            iload 3 /* i */
            aaload
            ldc Lorg/jruby/javasupport/proxy/InternalJavaProxy;
            if_acmpne 6
            goto 7
         6: .line 189
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            iload 4 /* j */
            iinc 4 /* j */ 1
            aload 1 /* ifaces */
            iload 3 /* i */
            aaload
            aastore
         7: .line 187
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 1 /* ifaces */
            arraylength
            if_icmplt 5
        end local 4 // int j
        end local 3 // int i
         9: .line 191
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Class[] result
        end local 1 // java.lang.Class[] ifaces
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            1   10     1  ifaces  [Ljava/lang/Class;
            2   10     2  result  [Ljava/lang/Class;
            3    9     3       i  I
            4    9     4       j  I

  public org.jruby.javasupport.proxy.JavaProxyConstructor[] getConstructors();
    descriptor: ()[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 197
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.constructors:[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 1 /* constructors */
        start local 1 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
         1: .line 198
            aload 1 /* constructors */
            ifnull 2
            aload 1 /* constructors */
            areturn
         2: .line 200
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         3: .line 201
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
            astore 3 /* ctors */
        start local 3 // java.lang.reflect.Constructor[] ctors
         4: .line 202
            aload 3 /* ctors */
            arraylength
            anewarray org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 1 /* constructors */
         5: .line 203
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 204
      StackMap locals: org.jruby.Ruby java.lang.reflect.Constructor[] int
      StackMap stack:
            aload 1 /* constructors */
            iload 4 /* i */
            new org.jruby.javasupport.proxy.JavaProxyConstructor
            dup
            aload 2 /* runtime */
            aload 0 /* this */
            aload 3 /* ctors */
            iload 4 /* i */
            aaload
            invokespecial org.jruby.javasupport.proxy.JavaProxyConstructor.<init>:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/proxy/JavaProxyClass;Ljava/lang/reflect/Constructor;)V
            aastore
         8: .line 203
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 3 /* ctors */
            arraylength
            if_icmplt 7
        end local 4 // int i
        10: .line 206
            aload 0 /* this */
            aload 1 /* constructors */
            dup_x1
            putfield org.jruby.javasupport.proxy.JavaProxyClass.constructors:[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            areturn
        end local 3 // java.lang.reflect.Constructor[] ctors
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            1   11     1  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            3   11     2       runtime  Lorg/jruby/Ruby;
            4   11     3         ctors  [Ljava/lang/reflect/Constructor;
            6   10     4             i  I

  public org.jruby.javasupport.proxy.JavaProxyConstructor getConstructor(java.lang.Class[]);
    descriptor: ([Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
        start local 1 // java.lang.Class[] args
         0: .line 212
            aload 1 /* args */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Class
            astore 2 /* realArgs */
        start local 2 // java.lang.Class[] realArgs
         1: .line 213
            aload 1 /* args */
            iconst_0
            aload 2 /* realArgs */
            iconst_0
            aload 1 /* args */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 214
            aload 2 /* realArgs */
            aload 1 /* args */
            arraylength
            ldc Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
            aastore
         3: .line 217
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            aload 2 /* realArgs */
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 3 /* constructor */
        start local 3 // java.lang.reflect.Constructor constructor
         4: .line 218
            new org.jruby.javasupport.proxy.JavaProxyConstructor
            dup
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            aload 3 /* constructor */
            invokespecial org.jruby.javasupport.proxy.JavaProxyConstructor.<init>:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/proxy/JavaProxyClass;Ljava/lang/reflect/Constructor;)V
            areturn
        end local 3 // java.lang.reflect.Constructor constructor
        end local 2 // java.lang.Class[] realArgs
        end local 1 // java.lang.Class[] args
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            0    5     1         args  [Ljava/lang/Class;
            1    5     2     realArgs  [Ljava/lang/Class;
            4    5     3  constructor  Ljava/lang/reflect/Constructor<*>;
    Exceptions:
      throws java.lang.SecurityException, java.lang.NoSuchMethodException
    MethodParameters:
      Name  Flags
      args  final

  public org.jruby.javasupport.proxy.JavaProxyMethod[] getMethods();
    descriptor: ()[Lorg/jruby/javasupport/proxy/JavaProxyMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 222
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.methods:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.methods:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.jruby.javasupport.proxy.JavaProxyMethod
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyMethod[]
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;

  public org.jruby.javasupport.proxy.JavaProxyMethod getMethod(java.lang.String, java.lang.Class[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] parameterTypes
         0: .line 226
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.methodMap:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* methods */
        start local 3 // java.util.List methods
         1: .line 227
            aload 3 /* methods */
            ifnull 7
            aload 3 /* methods */
            invokeinterface java.util.List.size:()I
            ifle 7
         2: .line 228
            aload 3 /* methods */
            invokeinterface java.util.List.size:()I
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 229
      StackMap locals: java.util.List int
      StackMap stack:
            aload 3 /* methods */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl
            astore 5 /* impl */
        start local 5 // org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl impl
         5: .line 230
            aload 5 /* impl */
            aload 1 /* name */
            aload 2 /* parameterTypes */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl.matches:(Ljava/lang/String;[Ljava/lang/Class;)Z
            ifeq 6
            aload 5 /* impl */
            areturn
        end local 5 // org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl impl
         6: .line 228
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
            iload 4 /* i */
            ifge 4
        end local 4 // int i
         7: .line 233
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.List methods
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String name
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            0    8     1            name  Ljava/lang/String;
            0    8     2  parameterTypes  [Ljava/lang/Class;
            1    8     3         methods  Ljava/util/List<Lorg/jruby/javasupport/proxy/JavaProxyMethod;>;
            3    7     4               i  I
            5    6     5            impl  Lorg/jruby/javasupport/proxy/JavaProxyClass$ProxyMethodImpl;
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  

  public final java.lang.Class getJavaClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 238
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;

  org.jruby.javasupport.proxy.JavaProxyMethod initMethod(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Lorg/jruby/javasupport/proxy/JavaProxyMethod;
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String desc
        start local 3 // boolean hasSuper
         0: .line 447
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.proxyClass:Ljava/lang/Class;
            astore 4 /* proxy */
        start local 4 // java.lang.Class proxy
         1: .line 449
            aload 4 /* proxy */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 2 /* desc */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.parse:(Ljava/lang/ClassLoader;Ljava/lang/String;)[Ljava/lang/Class;
            astore 5 /* paramTypes */
        start local 5 // java.lang.Class[] paramTypes
         2: .line 450
            aload 4 /* proxy */
            aload 1 /* name */
            aload 5 /* paramTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         3: .line 451
            aconst_null
            astore 7 /* superMethod */
        start local 7 // java.lang.reflect.Method superMethod
         4: .line 452
            iload 3 /* hasSuper */
            ifeq 6
         5: .line 453
            aload 4 /* proxy */
            new java.lang.StringBuilder
            dup
            ldc "__super$"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* paramTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 7 /* superMethod */
         6: .line 456
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyClass java.lang.String java.lang.String int java.lang.Class java.lang.Class[] java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack:
            new org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl
            dup
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            aload 6 /* method */
            aload 7 /* superMethod */
            invokespecial org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl.<init>:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/proxy/JavaProxyClass;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
            astore 8 /* proxyMethod */
        start local 8 // org.jruby.javasupport.proxy.JavaProxyMethod proxyMethod
         7: .line 457
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.methods:Ljava/util/ArrayList;
            aload 8 /* proxyMethod */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 459
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.methodMap:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 9 /* methodsWithName */
        start local 9 // java.util.ArrayList methodsWithName
         9: .line 460
            aload 9 /* methodsWithName */
            ifnonnull 12
        10: .line 461
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 9 /* methodsWithName */
        11: .line 462
            aload 0 /* this */
            getfield org.jruby.javasupport.proxy.JavaProxyClass.methodMap:Ljava/util/HashMap;
            aload 1 /* name */
            aload 9 /* methodsWithName */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 464
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyMethod java.util.ArrayList
      StackMap stack:
            aload 9 /* methodsWithName */
            aload 8 /* proxyMethod */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        13: .line 466
            aload 8 /* proxyMethod */
        14: areturn
        end local 9 // java.util.ArrayList methodsWithName
        end local 8 // org.jruby.javasupport.proxy.JavaProxyMethod proxyMethod
        end local 7 // java.lang.reflect.Method superMethod
        end local 6 // java.lang.reflect.Method method
        end local 5 // java.lang.Class[] paramTypes
        15: .line 468
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyClass java.lang.String java.lang.String int java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
            astore 5 /* e */
        start local 5 // java.lang.ClassNotFoundException e
        16: .line 469
            new java.lang.InternalError
            dup
            aload 5 /* e */
            invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.ClassNotFoundException e
        17: .line 471
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 5 /* e */
        start local 5 // java.lang.SecurityException e
        18: .line 472
            new java.lang.InternalError
            dup
            aload 5 /* e */
            invokevirtual java.lang.SecurityException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.SecurityException e
        19: .line 474
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            astore 5 /* e */
        start local 5 // java.lang.NoSuchMethodException e
        20: .line 475
            new java.lang.InternalError
            dup
            aload 5 /* e */
            invokevirtual java.lang.NoSuchMethodException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.NoSuchMethodException e
        end local 4 // java.lang.Class proxy
        end local 3 // boolean hasSuper
        end local 2 // java.lang.String desc
        end local 1 // java.lang.String name
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0             this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            0   21     1             name  Ljava/lang/String;
            0   21     2             desc  Ljava/lang/String;
            0   21     3         hasSuper  Z
            1   21     4            proxy  Ljava/lang/Class;
            2   15     5       paramTypes  [Ljava/lang/Class;
            3   15     6           method  Ljava/lang/reflect/Method;
            4   15     7      superMethod  Ljava/lang/reflect/Method;
            7   15     8      proxyMethod  Lorg/jruby/javasupport/proxy/JavaProxyMethod;
            9   15     9  methodsWithName  Ljava/util/ArrayList<Lorg/jruby/javasupport/proxy/JavaProxyMethod;>;
           16   17     5                e  Ljava/lang/ClassNotFoundException;
           18   19     5                e  Ljava/lang/SecurityException;
           20   21     5                e  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           1    14      15  Class java.lang.ClassNotFoundException
           1    14      17  Class java.lang.SecurityException
           1    14      19  Class java.lang.NoSuchMethodException
    MethodParameters:
          Name  Flags
      name      final
      desc      final
      hasSuper  final

  private static java.lang.Class[] parse(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)[Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // java.lang.ClassLoader loader
        start local 1 // java.lang.String desc
         0: .line 480
            new java.util.ArrayList
            dup
            bipush 8
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* types */
        start local 2 // java.util.ArrayList types
         1: .line 481
            iconst_1
            istore 3 /* idx */
        start local 3 // int idx
         2: .line 482
            goto 36
         3: .line 484
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            iconst_0
            istore 4 /* arr */
        start local 4 // int arr
         4: .line 485
            goto 6
         5: .line 486
      StackMap locals: int
      StackMap stack:
            iinc 3 /* idx */ 1
            iinc 4 /* arr */ 1
         6: .line 485
      StackMap locals:
      StackMap stack:
            aload 1 /* desc */
            iload 3 /* idx */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpeq 5
         7: .line 491
            aload 1 /* desc */
            iload 3 /* idx */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 9
                   66: 15
                   67: 17
                   68: 29
                   70: 27
                   73: 23
                   74: 25
                   76: 8
                   83: 21
                   90: 19
              default: 31
          }
         8: .line 493
      StackMap locals:
      StackMap stack:
            aload 1 /* desc */
            bipush 59
            iload 3 /* idx */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* semi */
        start local 6 // int semi
         9: .line 494
            aload 1 /* desc */
            iload 3 /* idx */
            iconst_1
            iadd
            iload 6 /* semi */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
        10: .line 495
            iload 6 /* semi */
            istore 3 /* idx */
        11: .line 497
            new org.jruby.javasupport.proxy.JavaProxyClass$1
            dup
            aload 7 /* name */
            aload 0 /* loader */
            invokespecial org.jruby.javasupport.proxy.JavaProxyClass$1.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* type */
        start local 5 // java.lang.Class type
        12: .line 502
            goto 32
        end local 5 // java.lang.Class type
      StackMap locals: java.lang.ClassLoader java.lang.String java.util.ArrayList int int top int java.lang.String
      StackMap stack: java.security.PrivilegedActionException
        13: astore 8 /* e */
        start local 8 // java.security.PrivilegedActionException e
        14: .line 503
            aload 8 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.lang.ClassNotFoundException
            athrow
        end local 8 // java.security.PrivilegedActionException e
        end local 7 // java.lang.String name
        end local 6 // int semi
        15: .line 507
      StackMap locals: java.lang.ClassLoader java.lang.String java.util.ArrayList int int
      StackMap stack:
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        16: goto 32
        end local 5 // java.lang.Class type
        17: .line 508
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        18: goto 32
        end local 5 // java.lang.Class type
        19: .line 509
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        20: goto 32
        end local 5 // java.lang.Class type
        21: .line 510
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        22: goto 32
        end local 5 // java.lang.Class type
        23: .line 511
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        24: goto 32
        end local 5 // java.lang.Class type
        25: .line 512
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        26: goto 32
        end local 5 // java.lang.Class type
        27: .line 513
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        28: goto 32
        end local 5 // java.lang.Class type
        29: .line 514
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
        30: goto 32
        end local 5 // java.lang.Class type
        31: .line 516
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot parse "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* desc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 3 /* idx */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // java.lang.Class type
        32: .line 519
      StackMap locals: java.lang.Class
      StackMap stack:
            iinc 3 /* idx */ 1
        33: .line 521
            iload 4 /* arr */
            ifeq 35
        34: .line 522
            aload 5 /* type */
            iload 4 /* arr */
            newarray 10
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;[I)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 5 /* type */
        35: .line 525
      StackMap locals:
      StackMap stack:
            aload 2 /* types */
            aload 5 /* type */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.Class type
        end local 4 // int arr
        36: .line 482
      StackMap locals:
      StackMap stack:
            aload 1 /* desc */
            iload 3 /* idx */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 3
        37: .line 528
            aload 2 /* types */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 38
            getstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            goto 39
      StackMap locals:
      StackMap stack:
        38: aload 2 /* types */
            aload 2 /* types */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.Class
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
      StackMap locals:
      StackMap stack: java.lang.Class[]
        39: areturn
        end local 3 // int idx
        end local 2 // java.util.ArrayList types
        end local 1 // java.lang.String desc
        end local 0 // java.lang.ClassLoader loader
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   40     0  loader  Ljava/lang/ClassLoader;
            0   40     1    desc  Ljava/lang/String;
            1   40     2   types  Ljava/util/ArrayList<Ljava/lang/Class;>;
            2   40     3     idx  I
            4   36     4     arr  I
           12   13     5    type  Ljava/lang/Class;
           16   17     5    type  Ljava/lang/Class;
           18   19     5    type  Ljava/lang/Class;
           20   21     5    type  Ljava/lang/Class;
           22   23     5    type  Ljava/lang/Class;
           24   25     5    type  Ljava/lang/Class;
           26   27     5    type  Ljava/lang/Class;
           28   29     5    type  Ljava/lang/Class;
           30   31     5    type  Ljava/lang/Class;
           32   36     5    type  Ljava/lang/Class;
            9   15     6    semi  I
           10   15     7    name  Ljava/lang/String;
           14   15     8       e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
        Name  Flags
      loader  final
      desc    

  public static void createJavaProxyClasses(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule Java
         0: .line 536
            aload 0 /* runtime */
            aload 1 /* Java */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.createJavaProxyClassClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            pop
         1: .line 537
            aload 0 /* runtime */
            aload 1 /* Java */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl.createJavaProxyMethodClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            pop
         2: .line 538
            aload 0 /* runtime */
            aload 1 /* Java */
            invokestatic org.jruby.javasupport.proxy.JavaProxyConstructor.createJavaProxyConstructorClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            pop
         3: .line 539
            return
        end local 1 // org.jruby.RubyModule Java
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1     Java  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  final
      Java     final

  public static org.jruby.RubyClass createJavaProxyClassClass(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule Java
         0: .line 542
            aload 1 /* Java */
            ldc "JavaProxyClass"
         1: .line 543
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            getstatic org.jruby.runtime.ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         2: .line 542
            invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 2 /* JavaProxyClass */
        start local 2 // org.jruby.RubyClass JavaProxyClass
         3: .line 545
            aload 0 /* runtime */
            aload 2 /* JavaProxyClass */
            invokestatic org.jruby.javasupport.proxy.JavaProxyReflectionObject.registerRubyMethods:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         4: .line 546
            aload 2 /* JavaProxyClass */
            ldc Lorg/jruby/javasupport/proxy/JavaProxyClass;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         5: .line 547
            aload 2 /* JavaProxyClass */
            areturn
        end local 2 // org.jruby.RubyClass JavaProxyClass
        end local 1 // org.jruby.RubyModule Java
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0         runtime  Lorg/jruby/Ruby;
            0    6     1            Java  Lorg/jruby/RubyModule;
            3    6     2  JavaProxyClass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  final
      Java     final

  public static org.jruby.RubyObject get(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 552
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 553
            aload 1 /* obj */
            instanceof org.jruby.javasupport.JavaClass
            ifne 3
         2: .line 554
            aload 2 /* runtime */
            aload 1 /* obj */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaClassClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 557
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* obj */
            checkcast org.jruby.javasupport.JavaClass
            astore 3 /* type */
        start local 3 // org.jruby.javasupport.JavaClass type
         4: .line 559
            aload 2 /* runtime */
            aload 3 /* type */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            getstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
         5: areturn
         6: .line 561
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.javasupport.JavaClass
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
         7: .line 562
            aload 2 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unable to create proxy class for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            invokevirtual org.jruby.javasupport.JavaClass.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            astore 5 /* ex */
        start local 5 // org.jruby.exceptions.RaiseException ex
         8: .line 563
            aload 5 /* ex */
            aload 4 /* e */
            invokevirtual org.jruby.exceptions.RaiseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         9: .line 564
            aload 5 /* ex */
            athrow
        end local 5 // org.jruby.exceptions.RaiseException ex
        end local 4 // java.lang.Throwable e
        end local 3 // org.jruby.javasupport.JavaClass type
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     2  runtime  Lorg/jruby/Ruby;
            4   10     3     type  Lorg/jruby/javasupport/JavaClass;
            7   10     4        e  Ljava/lang/Throwable;
            8   10     5       ex  Lorg/jruby/exceptions/RaiseException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.reflect.InvocationTargetException
           4     5       6  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
      Name  Flags
      self  
      obj   

  private static boolean isExcludedMethod(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 577
            aload 0 /* name */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 6
           -681255906: 1
           -383773413: 2
           -315539749: 3
             94742904: 4
            871091088: 5
           1322494972: 6
              default: 13
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "finalize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 13
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "java_class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 13
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "__jcreate!"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 13
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 13
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "initialize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 13
      StackMap locals:
      StackMap stack:
         6: aload 1
            ldc "java_object"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 13
         7: .line 578
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 579
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         9: .line 580
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        10: .line 581
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        11: .line 582
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        12: .line 583
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        13: .line 584
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public static org.jruby.RubyObject get_with_class(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 590
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 592
            aload 1 /* obj */
            instanceof org.jruby.RubyClass
            ifne 3
         2: .line 593
            aload 2 /* runtime */
            aload 1 /* obj */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getClassClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 596
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* runtime */
            aload 1 /* obj */
            checkcast org.jruby.RubyClass
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.getProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2  runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
      Name  Flags
      self  final
      obj   

  public static org.jruby.javasupport.proxy.JavaProxyClass getProxyClass(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyClass clazz
         0: .line 607
            aconst_null
            astore 2 /* javaClass */
        start local 2 // org.jruby.javasupport.JavaClass javaClass
         1: .line 608
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* names */
        start local 3 // java.util.HashSet names
         2: .line 609
            new java.util.LinkedHashSet
            dup
            bipush 8
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 4 /* interfaceList */
        start local 4 // java.util.Collection interfaceList
         3: .line 611
            iconst_0
            istore 5 /* skipRemainingClasses */
        start local 5 // boolean skipRemainingClasses
         4: .line 612
            aload 1 /* clazz */
            invokevirtual org.jruby.RubyClass.getAncestorList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 67
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            astore 6 /* ancestorObject */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ancestorObject
         6: .line 613
            aload 6 /* ancestorObject */
            checkcast org.jruby.RubyModule
            astore 8 /* ancestor */
        start local 8 // org.jruby.RubyModule ancestor
         7: .line 614
            aload 8 /* ancestor */
            instanceof org.jruby.RubyClass
            ifeq 56
         8: .line 615
            iload 5 /* skipRemainingClasses */
            ifeq 9
            goto 67
         9: .line 618
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int org.jruby.runtime.builtin.IRubyObject java.util.Iterator org.jruby.RubyModule
      StackMap stack:
            aload 8 /* ancestor */
            invokevirtual org.jruby.RubyModule.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
            ldc "@java_proxy_class"
            invokeinterface org.jruby.runtime.builtin.InstanceVariables.hasInstanceVariable:(Ljava/lang/String;)Z
            ifne 12
        10: .line 619
            iconst_1
            istore 5 /* skipRemainingClasses */
        11: .line 620
            goto 67
        12: .line 625
      StackMap locals:
      StackMap stack:
            aload 8 /* ancestor */
            invokevirtual org.jruby.RubyModule.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
            ldc "@java_class"
            invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* var */
        start local 9 // org.jruby.runtime.builtin.IRubyObject var
        13: .line 626
            aload 9 /* var */
            instanceof org.jruby.javasupport.JavaClass
            ifne 17
        14: .line 627
            aload 9 /* var */
            ifnonnull 16
        15: .line 628
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "no java_class defined for proxy (or ancestor): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* ancestor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        16: .line 630
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid java_class defined for proxy (or ancestor): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* ancestor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* var */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        17: .line 632
      StackMap locals:
      StackMap stack:
            aload 2 /* javaClass */
            ifnonnull 18
            aload 9 /* var */
            checkcast org.jruby.javasupport.JavaClass
            astore 2 /* javaClass */
            goto 22
        18: .line 633
      StackMap locals:
      StackMap stack:
            aload 2 /* javaClass */
            aload 9 /* var */
            if_acmpeq 22
        19: .line 634
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "java_class defined for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* javaClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        20: .line 635
            ldc ") does not match java_class for ancestor "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* ancestor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* var */
            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;
        21: .line 634
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        22: .line 638
      StackMap locals:
      StackMap stack:
            aload 8 /* ancestor */
            invokevirtual org.jruby.RubyModule.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
            ldc "@java_interfaces"
            invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* var */
        23: .line 639
            aload 9 /* var */
            ifnull 37
            aload 9 /* var */
            instanceof org.jruby.RubyNil
            ifne 37
        24: .line 640
            aload 9 /* var */
            instanceof org.jruby.RubyArray
            ifne 26
        25: .line 641
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid java_interfaces defined for proxy (or ancestor): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* ancestor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* var */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        26: .line 643
      StackMap locals:
      StackMap stack:
            aload 9 /* var */
            checkcast org.jruby.RubyArray
            astore 10 /* interfaces */
        start local 10 // org.jruby.RubyArray interfaces
        27: .line 644
            aload 10 /* interfaces */
            invokevirtual org.jruby.RubyArray.size:()I
            istore 11 /* i */
        start local 11 // int i
        28: goto 36
        29: .line 645
      StackMap locals: org.jruby.RubyArray int
      StackMap stack:
            aload 10 /* interfaces */
            iload 11 /* i */
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* iface */
        start local 12 // org.jruby.runtime.builtin.IRubyObject iface
        30: .line 646
            aload 12 /* iface */
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 13 /* interfaceClass */
        start local 13 // java.lang.Class interfaceClass
        31: .line 647
            aload 13 /* interfaceClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 35
        32: .line 648
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid java interface defined for proxy (or ancestor): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        33: .line 649
            aload 8 /* ancestor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* iface */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (not an interface)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 648
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        35: .line 651
      StackMap locals: org.jruby.runtime.builtin.IRubyObject java.lang.Class
      StackMap stack:
            aload 4 /* interfaceList */
            aload 13 /* interfaceClass */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.lang.Class interfaceClass
        end local 12 // org.jruby.runtime.builtin.IRubyObject iface
        36: .line 644
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ -1
            iload 11 /* i */
            ifge 29
        end local 11 // int i
        end local 10 // org.jruby.RubyArray interfaces
        37: .line 660
      StackMap locals:
      StackMap stack:
            aload 8 /* ancestor */
            ldc "__java_ovrd_methods"
            invokevirtual org.jruby.RubyModule.getInternalVariable:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.Collection
            astore 10 /* methodNames */
        start local 10 // java.util.Collection methodNames
        38: .line 662
            aload 10 /* methodNames */
            ifnonnull 54
        39: .line 665
            aload 8 /* ancestor */
            invokevirtual org.jruby.RubyModule.getMethods:()Ljava/util/Map;
            dup
            astore 11 /* methods */
        start local 11 // java.util.Map methods
        40: dup
            astore 12
            monitorenter
        41: .line 666
            new java.util.ArrayList
            dup
            aload 11 /* methods */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* methodNames */
        42: .line 667
            aload 11 /* methods */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 47
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int org.jruby.runtime.builtin.IRubyObject java.util.Iterator org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject java.util.Collection java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        43: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 13 /* id */
        start local 13 // java.lang.String id
        44: .line 668
            aload 13 /* id */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.isExcludedMethod:(Ljava/lang/String;)Z
            ifne 47
        45: .line 669
            aload 3 /* names */
            aload 13 /* id */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        46: .line 670
            aload 10 /* methodNames */
            aload 13 /* id */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.lang.String id
        47: .line 667
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        48: .line 665
            aload 12
            monitorexit
        49: goto 52
        end local 11 // java.util.Map methods
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int org.jruby.runtime.builtin.IRubyObject java.util.Iterator org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject java.util.Collection top java.util.Map
      StackMap stack: java.lang.Throwable
        50: aload 12
            monitorexit
        51: athrow
        start local 11 // java.util.Map methods
        52: .line 674
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int org.jruby.runtime.builtin.IRubyObject java.util.Iterator org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject java.util.Collection java.util.Map
      StackMap stack:
            aload 8 /* ancestor */
            ldc "__java_ovrd_methods"
            aload 10 /* methodNames */
            invokevirtual org.jruby.RubyModule.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 11 // java.util.Map methods
        53: .line 675
            goto 67
        54: .line 676
      StackMap locals:
      StackMap stack:
            aload 3 /* names */
            aload 10 /* methodNames */
            invokevirtual java.util.HashSet.addAll:(Ljava/util/Collection;)Z
            pop
        end local 10 // java.util.Collection methodNames
        end local 9 // org.jruby.runtime.builtin.IRubyObject var
        55: .line 678
            goto 67
      StackMap locals:
      StackMap stack:
        56: getstatic org.jruby.javasupport.proxy.JavaProxyClass.EXCLUDE_MODULES:Ljava/util/HashSet;
            aload 8 /* ancestor */
            invokevirtual org.jruby.RubyModule.getName:()Ljava/lang/String;
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 67
        57: .line 680
            aload 8 /* ancestor */
            invokevirtual org.jruby.RubyModule.getMethods:()Ljava/util/Map;
            dup
            astore 9 /* methods */
        start local 9 // java.util.Map methods
        58: dup
            astore 10
            monitorenter
        59: .line 681
            aload 9 /* methods */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 12
            goto 62
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int org.jruby.runtime.builtin.IRubyObject java.util.Iterator org.jruby.RubyModule java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        60: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* id */
        start local 11 // java.lang.String id
        61: .line 682
            aload 11 /* id */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.isExcludedMethod:(Ljava/lang/String;)Z
            ifne 62
            aload 3 /* names */
            aload 11 /* id */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String id
        62: .line 681
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 60
        63: .line 680
            aload 10
            monitorexit
        64: goto 67
        end local 9 // java.util.Map methods
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int org.jruby.runtime.builtin.IRubyObject java.util.Iterator org.jruby.RubyModule top java.util.Map
      StackMap stack: java.lang.Throwable
        65: aload 10
            monitorexit
        66: athrow
        end local 8 // org.jruby.RubyModule ancestor
        end local 6 // org.jruby.runtime.builtin.IRubyObject ancestorObject
        67: .line 612
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        68: .line 688
            aload 2 /* javaClass */
            ifnonnull 69
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unable to create proxy class: no java_class defined for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        69: .line 690
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int
      StackMap stack:
            aload 4 /* interfaceList */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 70
            getstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            goto 71
      StackMap locals:
      StackMap stack:
        70: aload 4 /* interfaceList */
            aload 4 /* interfaceList */
            invokeinterface java.util.Collection.size:()I
            anewarray java.lang.Class
            invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
      StackMap locals:
      StackMap stack: java.lang.Class[]
        71: astore 6 /* interfaces */
        start local 6 // java.lang.Class[] interfaces
        72: .line 693
            aload 0 /* runtime */
            aload 2 /* javaClass */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 6 /* interfaces */
            aload 3 /* names */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.newProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/Set;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
        73: areturn
        74: .line 695
      StackMap locals: org.jruby.Ruby org.jruby.RubyClass org.jruby.javasupport.JavaClass java.util.HashSet java.util.Collection int java.lang.Class[]
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 7 /* e */
        start local 7 // org.jruby.exceptions.RaiseException e
        75: .line 696
            aload 7 /* e */
            athrow
        end local 7 // org.jruby.exceptions.RaiseException e
        76: .line 698
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        77: .line 699
            aload 7 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            astore 8 /* msg */
        start local 8 // java.lang.String msg
        78: .line 700
            aload 8 /* msg */
            ifnonnull 79
            aload 7 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            astore 8 /* msg */
        79: .line 701
      StackMap locals: java.lang.Exception java.lang.String
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "unable to create proxy class for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* javaClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            astore 9 /* ex */
        start local 9 // org.jruby.exceptions.RaiseException ex
        80: .line 702
            aload 9 /* ex */
            aload 7 /* e */
            invokevirtual org.jruby.exceptions.RaiseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        81: .line 703
            aload 9 /* ex */
            athrow
        end local 9 // org.jruby.exceptions.RaiseException ex
        end local 8 // java.lang.String msg
        end local 7 // java.lang.Exception e
        end local 6 // java.lang.Class[] interfaces
        end local 5 // boolean skipRemainingClasses
        end local 4 // java.util.Collection interfaceList
        end local 3 // java.util.HashSet names
        end local 2 // org.jruby.javasupport.JavaClass javaClass
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   82     0               runtime  Lorg/jruby/Ruby;
            0   82     1                 clazz  Lorg/jruby/RubyClass;
            1   82     2             javaClass  Lorg/jruby/javasupport/JavaClass;
            2   82     3                 names  Ljava/util/HashSet<Ljava/lang/String;>;
            3   82     4         interfaceList  Ljava/util/Collection<Ljava/lang/Class<*>;>;
            4   82     5  skipRemainingClasses  Z
            6   67     6        ancestorObject  Lorg/jruby/runtime/builtin/IRubyObject;
            7   67     8              ancestor  Lorg/jruby/RubyModule;
           13   55     9                   var  Lorg/jruby/runtime/builtin/IRubyObject;
           27   37    10            interfaces  Lorg/jruby/RubyArray;
           28   37    11                     i  I
           30   36    12                 iface  Lorg/jruby/runtime/builtin/IRubyObject;
           31   36    13        interfaceClass  Ljava/lang/Class;
           38   55    10           methodNames  Ljava/util/Collection<Ljava/lang/String;>;
           40   50    11               methods  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;>;
           52   53    11               methods  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;>;
           44   47    13                    id  Ljava/lang/String;
           58   65     9               methods  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;>;
           61   62    11                    id  Ljava/lang/String;
           72   82     6            interfaces  [Ljava/lang/Class;
           75   76     7                     e  Lorg/jruby/exceptions/RaiseException;
           77   82     7                     e  Ljava/lang/Exception;
           78   82     8                   msg  Ljava/lang/String;
           80   82     9                    ex  Lorg/jruby/exceptions/RaiseException;
      Exception table:
        from    to  target  type
          41    49      50  any
          50    51      50  any
          59    64      65  any
          65    66      65  any
          72    73      74  Class org.jruby.exceptions.RaiseException
          72    73      76  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      runtime  final
      clazz    final

  public org.jruby.RubyObject superclass();
    descriptor: ()Lorg/jruby/RubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 709
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getSuperclass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray methods();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 714
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getMethods:()[Lorg/jruby/javasupport/proxy/JavaProxyMethod;
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.toRubyArray:([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray interfaces();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 719
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getInterfaces:()[Ljava/lang/Class;
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.toRubyArray:([Ljava/lang/Class;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public final org.jruby.RubyArray constructors();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 724
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getConstructors:()[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.toRubyArray:([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public final java.lang.String nameOnInspection();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
         0: .line 728
            new java.lang.StringBuilder
            dup
            ldc "[Proxy:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getSuperclass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.javasupport.proxy.JavaProxyClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/proxy/JavaProxyClass;
}
SourceFile: "JavaProxyClass.java"
NestMembers:
  org.jruby.javasupport.proxy.JavaProxyClass$1  org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl
InnerClasses:
  public final ProxyClassKey = org.jruby.javasupport.JavaSupport$ProxyClassKey of org.jruby.javasupport.JavaSupport
  org.jruby.javasupport.proxy.JavaProxyClass$1
  public ProxyMethodImpl = org.jruby.javasupport.proxy.JavaProxyClass$ProxyMethodImpl of org.jruby.javasupport.proxy.JavaProxyClass