public class org.jruby.javasupport.JavaSupportImpl extends org.jruby.javasupport.JavaSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.JavaSupportImpl
  super_class: org.jruby.javasupport.JavaSupport
{
  private final org.jruby.Ruby runtime;
    descriptor: Lorg/jruby/Ruby;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jruby.javasupport.util.ObjectProxyCache<org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyClass> objectProxyCache;
    descriptor: Lorg/jruby/javasupport/util/ObjectProxyCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/javasupport/util/ObjectProxyCache<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;>;

  private final org.jruby.util.collections.ClassValue<org.jruby.javasupport.JavaClass> javaClassCache;
    descriptor: Lorg/jruby/util/collections/ClassValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/util/collections/ClassValue<Lorg/jruby/javasupport/JavaClass;>;

  private final org.jruby.util.collections.ClassValue<org.jruby.RubyModule> proxyClassCache;
    descriptor: Lorg/jruby/util/collections/ClassValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/util/collections/ClassValue<Lorg/jruby/RubyModule;>;

  private final java.util.Map<java.lang.Class, org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy> unfinishedProxies;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class;Lorg/jruby/javasupport/JavaSupportImpl$UnfinishedProxy;>;

  private final org.jruby.util.collections.ClassValue<java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>> staticAssignedNames;
    descriptor: Lorg/jruby/util/collections/ClassValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/util/collections/ClassValue<Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;>;

  private final org.jruby.util.collections.ClassValue<java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>> instanceAssignedNames;
    descriptor: Lorg/jruby/util/collections/ClassValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/util/collections/ClassValue<Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;>;

  private org.jruby.RubyModule javaModule;
    descriptor: Lorg/jruby/RubyModule;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyModule javaUtilitiesModule;
    descriptor: Lorg/jruby/RubyModule;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyModule javaArrayUtilitiesModule;
    descriptor: Lorg/jruby/RubyModule;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaObjectClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.javasupport.JavaClass objectJavaClass;
    descriptor: Lorg/jruby/javasupport/JavaClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaClassClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaPackageClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaArrayClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaProxyClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass arrayJavaProxyCreatorClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaFieldClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaMethodClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaConstructorClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyModule javaInterfaceTemplate;
    descriptor: Lorg/jruby/RubyModule;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass arrayProxyClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass concreteProxyClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass mapJavaProxy;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.RubyClass javaProxyConstructorClass;
    descriptor: Lorg/jruby/RubyClass;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.String, org.jruby.javasupport.JavaClass> nameClassMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/JavaClass;>;

  private final java.util.Map<org.jruby.javasupport.JavaSupport$ProxyClassKey, org.jruby.javasupport.proxy.JavaProxyClass> javaProxyClasses;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;Lorg/jruby/javasupport/proxy/JavaProxyClass;>;

  private volatile java.util.Map<java.lang.Object, java.lang.Object[]> javaObjectVariables;
    descriptor: Ljava/util/Map;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/Map<Ljava/lang/Object;[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void <init>(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // org.jruby.Ruby runtime
         0: .line 109
            aload 0 /* this */
            invokespecial org.jruby.javasupport.JavaSupport.<init>:()V
         1: .line 66
            aload 0 /* this */
         2: .line 69
            new org.jruby.javasupport.JavaSupportImpl$1
            dup
            aload 0 /* this */
            getstatic org.jruby.javasupport.util.ObjectProxyCache$ReferenceType.WEAK:Lorg/jruby/javasupport/util/ObjectProxyCache$ReferenceType;
            invokespecial org.jruby.javasupport.JavaSupportImpl$1.<init>:(Lorg/jruby/javasupport/JavaSupportImpl;Lorg/jruby/javasupport/util/ObjectProxyCache$ReferenceType;)V
            putfield org.jruby.javasupport.JavaSupportImpl.objectProxyCache:Lorg/jruby/javasupport/util/ObjectProxyCache;
         3: .line 107
            aload 0 /* this */
            new java.util.HashMap
            dup
            bipush 64
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.jruby.javasupport.JavaSupportImpl.nameClassMap:Ljava/util/Map;
         4: .line 405
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
         5: .line 110
            aload 0 /* this */
            aload 1 /* runtime */
            putfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
         6: .line 112
            aload 0 /* this */
            new org.jruby.javasupport.JavaSupportImpl$2
            dup
            aload 0 /* this */
            aload 1 /* runtime */
            invokespecial org.jruby.javasupport.JavaSupportImpl$2.<init>:(Lorg/jruby/javasupport/JavaSupportImpl;Lorg/jruby/Ruby;)V
            invokestatic org.jruby.util.collections.ClassValue.newInstance:(Lorg/jruby/util/collections/ClassValueCalculator;)Lorg/jruby/util/collections/ClassValue;
            putfield org.jruby.javasupport.JavaSupportImpl.javaClassCache:Lorg/jruby/util/collections/ClassValue;
         7: .line 119
            aload 0 /* this */
            new org.jruby.javasupport.JavaSupportImpl$3
            dup
            aload 0 /* this */
            aload 1 /* runtime */
            invokespecial org.jruby.javasupport.JavaSupportImpl$3.<init>:(Lorg/jruby/javasupport/JavaSupportImpl;Lorg/jruby/Ruby;)V
            invokestatic org.jruby.util.collections.ClassValue.newInstance:(Lorg/jruby/util/collections/ClassValueCalculator;)Lorg/jruby/util/collections/ClassValue;
            putfield org.jruby.javasupport.JavaSupportImpl.proxyClassCache:Lorg/jruby/util/collections/ClassValue;
         8: .line 133
            aload 0 /* this */
            new org.jruby.javasupport.JavaSupportImpl$4
            dup
            aload 0 /* this */
            invokespecial org.jruby.javasupport.JavaSupportImpl$4.<init>:(Lorg/jruby/javasupport/JavaSupportImpl;)V
            invokestatic org.jruby.util.collections.ClassValue.newInstance:(Lorg/jruby/util/collections/ClassValueCalculator;)Lorg/jruby/util/collections/ClassValue;
            putfield org.jruby.javasupport.JavaSupportImpl.staticAssignedNames:Lorg/jruby/util/collections/ClassValue;
         9: .line 137
            aload 0 /* this */
            new org.jruby.javasupport.JavaSupportImpl$5
            dup
            aload 0 /* this */
            invokespecial org.jruby.javasupport.JavaSupportImpl$5.<init>:(Lorg/jruby/javasupport/JavaSupportImpl;)V
            invokestatic org.jruby.util.collections.ClassValue.newInstance:(Lorg/jruby/util/collections/ClassValueCalculator;)Lorg/jruby/util/collections/ClassValue;
            putfield org.jruby.javasupport.JavaSupportImpl.instanceAssignedNames:Lorg/jruby/util/collections/ClassValue;
        10: .line 143
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 8
            ldc 0.75
            iconst_1
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(IFI)V
            putfield org.jruby.javasupport.JavaSupportImpl.unfinishedProxies:Ljava/util/Map;
        11: .line 144
            return
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   12     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  public java.lang.Class loadJavaClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.String className
         0: .line 148
            aload 1 /* className */
            invokestatic org.jruby.javasupport.JavaUtil.getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
            dup
            astore 2 /* primitiveClass */
        start local 2 // java.lang.Class primitiveClass
         1: ifnonnull 11
         2: .line 149
            invokestatic org.jruby.Ruby.isSecurityRestricted:()Z
            ifne 10
         3: .line 150
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getExtraLoaders:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.String java.lang.Class top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.util.Loader
            astore 3 /* loader */
        start local 3 // org.jruby.util.Loader loader
         5: .line 152
            aload 3 /* loader */
            aload 1 /* className */
            invokeinterface org.jruby.util.Loader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
         6: areturn
         7: .line 154
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.String java.lang.Class org.jruby.util.Loader java.util.Iterator
      StackMap stack: java.lang.ClassNotFoundException
            pop
        end local 3 // org.jruby.util.Loader loader
         8: .line 150
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.String java.lang.Class top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 157
            aload 1 /* className */
            iconst_1
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            areturn
        10: .line 159
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.String java.lang.Class
      StackMap stack:
            aload 1 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        11: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* primitiveClass */
            areturn
        end local 2 // java.lang.Class primitiveClass
        end local 1 // java.lang.String className
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   12     1       className  Ljava/lang/String;
            1   12     2  primitiveClass  Ljava/lang/Class<*>;
            5    8     3          loader  Lorg/jruby/util/Loader;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
           Name  Flags
      className  

  public java.lang.Class loadJavaClassVerbose(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.String className
         0: .line 166
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.loadJavaClass:(Ljava/lang/String;)Ljava/lang/Class;
         1: areturn
         2: .line 167
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* ex */
        start local 2 // java.lang.ClassNotFoundException ex
         3: .line 168
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "cannot load Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 2 /* ex */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.ClassNotFoundException ex
         4: .line 169
      StackMap locals:
      StackMap stack: java.lang.ExceptionInInitializerError
            astore 2 /* ex */
        start local 2 // java.lang.ExceptionInInitializerError ex
         5: .line 170
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "cannot initialize Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 2 /* ex */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.ExceptionInInitializerError ex
         6: .line 171
      StackMap locals:
      StackMap stack: java.lang.LinkageError
            astore 2 /* ex */
        start local 2 // java.lang.LinkageError ex
         7: .line 172
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "cannot link Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", probable missing dependency: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* ex */
            invokevirtual java.lang.LinkageError.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 2 /* ex */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.LinkageError ex
         8: .line 173
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 2 /* ex */
        start local 2 // java.lang.SecurityException ex
         9: .line 174
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.isVerbose:()Z
            ifeq 10
            aload 2 /* ex */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getErrorStream:()Ljava/io/PrintStream;
            invokevirtual java.lang.SecurityException.printStackTrace:(Ljava/io/PrintStream;)V
        10: .line 175
      StackMap locals: java.lang.SecurityException
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            aload 2 /* ex */
            invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.SecurityException ex
        end local 1 // java.lang.String className
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   11     1  className  Ljava/lang/String;
            3    4     2         ex  Ljava/lang/ClassNotFoundException;
            5    6     2         ex  Ljava/lang/ExceptionInInitializerError;
            7    8     2         ex  Ljava/lang/LinkageError;
            9   11     2         ex  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
           0     1       4  Class java.lang.ExceptionInInitializerError
           0     1       6  Class java.lang.LinkageError
           0     1       8  Class java.lang.SecurityException
    MethodParameters:
           Name  Flags
      className  

  public java.lang.Class loadJavaClassQuiet(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.String className
         0: .line 181
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.loadJavaClass:(Ljava/lang/String;)Ljava/lang/Class;
         1: areturn
         2: .line 182
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* ex */
        start local 2 // java.lang.ClassNotFoundException ex
         3: .line 183
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "cannot load Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 2 /* ex */
            iconst_0
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.ClassNotFoundException ex
         4: .line 184
      StackMap locals:
      StackMap stack: java.lang.ExceptionInInitializerError
            astore 2 /* ex */
        start local 2 // java.lang.ExceptionInInitializerError ex
         5: .line 185
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "cannot initialize Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 2 /* ex */
            iconst_0
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.ExceptionInInitializerError ex
         6: .line 186
      StackMap locals:
      StackMap stack: java.lang.LinkageError
            astore 2 /* ex */
        start local 2 // java.lang.LinkageError ex
         7: .line 187
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "cannot link Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 2 /* ex */
            iconst_0
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.LinkageError ex
         8: .line 188
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 2 /* ex */
        start local 2 // java.lang.SecurityException ex
         9: .line 189
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            aload 2 /* ex */
            invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            aload 2 /* ex */
            invokestatic org.jruby.javasupport.JavaSupportImpl.initCause:(Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.SecurityException ex
        end local 1 // java.lang.String className
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   10     1  className  Ljava/lang/String;
            3    4     2         ex  Ljava/lang/ClassNotFoundException;
            5    6     2         ex  Ljava/lang/ExceptionInInitializerError;
            7    8     2         ex  Ljava/lang/LinkageError;
            9   10     2         ex  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
           0     1       4  Class java.lang.ExceptionInInitializerError
           0     1       6  Class java.lang.LinkageError
           0     1       8  Class java.lang.SecurityException
    MethodParameters:
           Name  Flags
      className  

  private static org.jruby.exceptions.RaiseException initCause(org.jruby.exceptions.RaiseException, java.lang.Throwable);
    descriptor: (Lorg/jruby/exceptions/RaiseException;Ljava/lang/Throwable;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.exceptions.RaiseException ex
        start local 1 // java.lang.Throwable cause
         0: .line 194
            aload 0 /* ex */
            aload 1 /* cause */
            invokevirtual org.jruby.exceptions.RaiseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
            aload 0 /* ex */
            areturn
        end local 1 // java.lang.Throwable cause
        end local 0 // org.jruby.exceptions.RaiseException ex
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0     ex  Lorg/jruby/exceptions/RaiseException;
            0    1     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      ex     final
      cause  final

  public org.jruby.javasupport.JavaClass getJavaClassFromCache(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Class clazz
         0: .line 198
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaClassCache:Lorg/jruby/util/collections/ClassValue;
            aload 1 /* clazz */
            invokevirtual org.jruby.util.collections.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.JavaClass
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    1     1  clazz  Ljava/lang/Class;
    MethodParameters:
       Name  Flags
      clazz  

  public org.jruby.RubyModule getProxyClassFromCache(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Class clazz
         0: .line 202
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.proxyClassCache:Lorg/jruby/util/collections/ClassValue;
            aload 1 /* clazz */
            invokevirtual org.jruby.util.collections.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.jruby.RubyModule
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    1     1  clazz  Ljava/lang/Class;
    MethodParameters:
       Name  Flags
      clazz  

  public void handleNativeException(java.lang.Throwable, java.lang.reflect.Member);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/reflect/Member;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Throwable exception
        start local 2 // java.lang.reflect.Member target
         0: .line 206
            aload 1 /* exception */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 2
         1: .line 208
            aload 1 /* exception */
            checkcast org.jruby.exceptions.RaiseException
            athrow
         2: .line 210
      StackMap locals:
      StackMap stack:
            aload 1 /* exception */
            instanceof org.jruby.exceptions.Unrescuable
            ifeq 7
         3: .line 212
            aload 1 /* exception */
            instanceof java.lang.Error
            ifeq 5
         4: .line 213
            aload 1 /* exception */
            checkcast java.lang.Error
            athrow
         5: .line 215
      StackMap locals:
      StackMap stack:
            aload 1 /* exception */
            instanceof java.lang.RuntimeException
            ifeq 7
         6: .line 216
            aload 1 /* exception */
            checkcast java.lang.RuntimeException
            athrow
         7: .line 220
      StackMap locals:
      StackMap stack:
            aload 1 /* exception */
            invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
         8: .line 221
            return
        end local 2 // java.lang.reflect.Member target
        end local 1 // java.lang.Throwable exception
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    9     1  exception  Ljava/lang/Throwable;
            0    9     2     target  Ljava/lang/reflect/Member;
    MethodParameters:
           Name  Flags
      exception  
      target     

  public org.jruby.javasupport.util.ObjectProxyCache<org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyClass> getObjectProxyCache();
    descriptor: ()Lorg/jruby/javasupport/util/ObjectProxyCache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 224
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.objectProxyCache:Lorg/jruby/javasupport/util/ObjectProxyCache;
            areturn
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
    Signature: ()Lorg/jruby/javasupport/util/ObjectProxyCache<Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;>;

  public java.util.Map<java.lang.String, org.jruby.javasupport.JavaClass> getNameClassMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 234
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.nameClassMap:Ljava/util/Map;
            areturn
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/JavaClass;>;

  public org.jruby.RubyModule getJavaModule();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 239
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaModule:Lorg/jruby/RubyModule;
            dup
            astore 1 /* module */
        start local 1 // org.jruby.RubyModule module
         1: ifnull 2
            aload 1 /* module */
            areturn
         2: .line 240
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "Java"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaModule:Lorg/jruby/RubyModule;
            areturn
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  module  Lorg/jruby/RubyModule;

  public org.jruby.RubyModule getJavaUtilitiesModule();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 245
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaUtilitiesModule:Lorg/jruby/RubyModule;
            dup
            astore 1 /* module */
        start local 1 // org.jruby.RubyModule module
         1: ifnull 2
            aload 1 /* module */
            areturn
         2: .line 246
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "JavaUtilities"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaUtilitiesModule:Lorg/jruby/RubyModule;
            areturn
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  module  Lorg/jruby/RubyModule;

  public org.jruby.RubyModule getJavaArrayUtilitiesModule();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 251
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaArrayUtilitiesModule:Lorg/jruby/RubyModule;
            dup
            astore 1 /* module */
        start local 1 // org.jruby.RubyModule module
         1: ifnull 2
            aload 1 /* module */
            areturn
         2: .line 252
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "JavaArrayUtilities"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaArrayUtilitiesModule:Lorg/jruby/RubyModule;
            areturn
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  module  Lorg/jruby/RubyModule;

  public org.jruby.RubyClass getJavaObjectClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 257
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaObjectClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 258
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaObject"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaObjectClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getJavaProxyConstructorClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 263
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyConstructorClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 264
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaProxyConstructor"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaProxyConstructorClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.javasupport.JavaClass getObjectJavaClass();
    descriptor: ()Lorg/jruby/javasupport/JavaClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 268
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.objectJavaClass:Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaSupportImpl;

  public void setObjectJavaClass(org.jruby.javasupport.JavaClass);
    descriptor: (Lorg/jruby/javasupport/JavaClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // org.jruby.javasupport.JavaClass objectJavaClass
         0: .line 272
            aload 0 /* this */
            aload 1 /* objectJavaClass */
            putfield org.jruby.javasupport.JavaSupportImpl.objectJavaClass:Lorg/jruby/javasupport/JavaClass;
         1: .line 273
            return
        end local 1 // org.jruby.javasupport.JavaClass objectJavaClass
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    2     1  objectJavaClass  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
                 Name  Flags
      objectJavaClass  

  public org.jruby.RubyClass getJavaArrayClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 277
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaArrayClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 278
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaArray"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaArrayClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getJavaClassClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 283
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaClassClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 284
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaClass"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaClassClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getJavaPackageClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 289
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaPackageClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 290
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaPackage"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaPackageClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyModule getJavaInterfaceTemplate();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 295
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaInterfaceTemplate:Lorg/jruby/RubyModule;
            dup
            astore 1 /* module */
        start local 1 // org.jruby.RubyModule module
         1: ifnull 2
            aload 1 /* module */
            areturn
         2: .line 296
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "JavaInterfaceTemplate"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaInterfaceTemplate:Lorg/jruby/RubyModule;
            areturn
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  module  Lorg/jruby/RubyModule;

  public org.jruby.RubyModule getPackageModuleTemplate();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 301
            aconst_null
            areturn
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.jruby.RubyClass getJavaProxyClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 306
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 307
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "JavaProxy"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaProxyClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getArrayJavaProxyCreatorClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 312
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.arrayJavaProxyCreatorClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 313
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "ArrayJavaProxyCreator"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.arrayJavaProxyCreatorClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getConcreteProxyClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 318
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.concreteProxyClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 319
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "ConcreteJavaProxy"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.concreteProxyClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getMapJavaProxyClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 324
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.mapJavaProxy:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 325
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "MapJavaProxy"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.mapJavaProxy:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getArrayProxyClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 330
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.arrayProxyClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 331
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.runtime:Lorg/jruby/Ruby;
            ldc "ArrayJavaProxy"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.arrayProxyClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getJavaFieldClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 336
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaFieldClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 337
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaField"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaFieldClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getJavaMethodClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 342
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaMethodClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 343
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaMethod"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaMethodClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.RubyClass getJavaConstructorClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 348
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaConstructorClass:Lorg/jruby/RubyClass;
            dup
            astore 1 /* clazz */
        start local 1 // org.jruby.RubyClass clazz
         1: ifnull 2
            aload 1 /* clazz */
            areturn
         2: .line 349
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaSupportImpl.getJavaModule:()Lorg/jruby/RubyModule;
            ldc "JavaConstructor"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaConstructorClass:Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            1    3     1  clazz  Lorg/jruby/RubyClass;

  public org.jruby.util.collections.ClassValue<java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>> getStaticAssignedNames();
    descriptor: ()Lorg/jruby/util/collections/ClassValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 353
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.staticAssignedNames:Lorg/jruby/util/collections/ClassValue;
            areturn
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
    Signature: ()Lorg/jruby/util/collections/ClassValue<Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;>;

  public org.jruby.util.collections.ClassValue<java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>> getInstanceAssignedNames();
    descriptor: ()Lorg/jruby/util/collections/ClassValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 357
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.instanceAssignedNames:Lorg/jruby/util/collections/ClassValue;
            areturn
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
    Signature: ()Lorg/jruby/util/collections/ClassValue<Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;>;

  public final void beginProxy(java.lang.Class, org.jruby.RubyModule);
    descriptor: (Ljava/lang/Class;Lorg/jruby/RubyModule;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Class cls
        start local 2 // org.jruby.RubyModule proxy
         0: .line 363
            new org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy
            dup
            aload 2 /* proxy */
            invokespecial org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy.<init>:(Lorg/jruby/RubyModule;)V
            astore 3 /* up */
        start local 3 // org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy up
         1: .line 364
            aload 3 /* up */
            invokevirtual org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy.lock:()V
         2: .line 365
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.unfinishedProxies:Ljava/util/Map;
            aload 1 /* cls */
            aload 3 /* up */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 366
            return
        end local 3 // org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy up
        end local 2 // org.jruby.RubyModule proxy
        end local 1 // java.lang.Class cls
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    4     1    cls  Ljava/lang/Class;
            0    4     2  proxy  Lorg/jruby/RubyModule;
            1    4     3     up  Lorg/jruby/javasupport/JavaSupportImpl$UnfinishedProxy;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      cls    
      proxy  

  public final void endProxy(java.lang.Class);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Class cls
         0: .line 371
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.unfinishedProxies:Ljava/util/Map;
            aload 1 /* cls */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy
            astore 2 /* up */
        start local 2 // org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy up
         1: .line 372
            aload 2 /* up */
            invokevirtual org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy.unlock:()V
         2: .line 373
            return
        end local 2 // org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy up
        end local 1 // java.lang.Class cls
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    3     1   cls  Ljava/lang/Class;
            1    3     2    up  Lorg/jruby/javasupport/JavaSupportImpl$UnfinishedProxy;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      cls   

  public final org.jruby.RubyModule getUnfinishedProxy(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/jruby/RubyModule;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Class cls
         0: .line 378
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.unfinishedProxies:Ljava/util/Map;
            aload 1 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy
            astore 2 /* up */
        start local 2 // org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy up
         1: .line 379
            aload 2 /* up */
            ifnull 2
            aload 2 /* up */
            invokevirtual org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy.isHeldByCurrentThread:()Z
            ifeq 2
            aload 2 /* up */
            getfield org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy.proxy:Lorg/jruby/RubyModule;
            areturn
         2: .line 380
      StackMap locals: org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy up
        end local 1 // java.lang.Class cls
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    3     1   cls  Ljava/lang/Class;
            1    3     2    up  Lorg/jruby/javasupport/JavaSupportImpl$UnfinishedProxy;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      cls   

  public java.util.Map<java.util.Set<?>, org.jruby.javasupport.proxy.JavaProxyClass> getJavaProxyClassCache();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
         0: .line 385
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 1 /* javaProxyClassCache */
        start local 1 // java.util.Map javaProxyClassCache
         1: .line 386
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         2: .line 387
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         4: .line 388
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.jruby.javasupport.JavaSupport$ProxyClassKey
            astore 5 /* key */
        start local 5 // org.jruby.javasupport.JavaSupport$ProxyClassKey key
         5: .line 389
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* cacheKey */
        start local 6 // java.util.Set cacheKey
         6: .line 390
            aload 6 /* cacheKey */
            aload 5 /* key */
            getfield org.jruby.javasupport.JavaSupport$ProxyClassKey.superClass:Ljava/lang/Class;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 391
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: goto 11
         9: .line 392
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator org.jruby.javasupport.JavaSupport$ProxyClassKey java.util.Set int
      StackMap stack:
            aload 6 /* cacheKey */
            aload 5 /* key */
            getfield org.jruby.javasupport.JavaSupport$ProxyClassKey.interfaces:[Ljava/lang/Class;
            iload 7 /* i */
            aaload
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 391
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* i */
            aload 5 /* key */
            getfield org.jruby.javasupport.JavaSupport$ProxyClassKey.interfaces:[Ljava/lang/Class;
            arraylength
            if_icmplt 9
        end local 7 // int i
        12: .line 395
            aload 5 /* key */
            getfield org.jruby.javasupport.JavaSupport$ProxyClassKey.names:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 13
            aload 6 /* cacheKey */
            aload 5 /* key */
            getfield org.jruby.javasupport.JavaSupport$ProxyClassKey.names:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        13: .line 397
      StackMap locals:
      StackMap stack:
            aload 1 /* javaProxyClassCache */
            aload 6 /* cacheKey */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyClass
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.util.Set cacheKey
        end local 5 // org.jruby.javasupport.JavaSupport$ProxyClassKey key
        end local 3 // java.util.Map$Entry entry
        14: .line 387
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        15: .line 386
            aload 2
            monitorexit
        16: goto 19
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.util.Map java.util.Map
      StackMap stack: java.lang.Throwable
        17: aload 2
            monitorexit
        18: athrow
        19: .line 401
      StackMap locals:
      StackMap stack:
            aload 1 /* javaProxyClassCache */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 1 // java.util.Map javaProxyClassCache
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Lorg/jruby/javasupport/JavaSupportImpl;
            1   20     1  javaProxyClassCache  Ljava/util/Map<Ljava/util/Set<*>;Lorg/jruby/javasupport/proxy/JavaProxyClass;>;
            4   14     3                entry  Ljava/util/Map$Entry<Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;Lorg/jruby/javasupport/proxy/JavaProxyClass;>;
            5   14     5                  key  Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
            6   14     6             cacheKey  Ljava/util/Set<Ljava/lang/Object;>;
            8   12     7                    i  I
      Exception table:
        from    to  target  type
           2    16      17  any
          17    18      17  any
    Signature: ()Ljava/util/Map<Ljava/util/Set<*>;Lorg/jruby/javasupport/proxy/JavaProxyClass;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected final org.jruby.javasupport.proxy.JavaProxyClass fetchJavaProxyClass(org.jruby.javasupport.JavaSupport$ProxyClassKey);
    descriptor: (Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
         0: .line 409
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         1: .line 410
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            aload 1 /* classKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyClass
            aload 2
            monitorexit
         2: areturn
         3: .line 409
      StackMap locals: org.jruby.javasupport.JavaSupportImpl org.jruby.javasupport.JavaSupport$ProxyClassKey java.util.Map
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jruby/javasupport/JavaSupportImpl;
            0    5     1  classKey  Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    MethodParameters:
          Name  Flags
      classKey  

  protected final org.jruby.javasupport.proxy.JavaProxyClass saveJavaProxyClass(org.jruby.javasupport.JavaSupport$ProxyClassKey, org.jruby.javasupport.proxy.JavaProxyClass);
    descriptor: (Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;Lorg/jruby/javasupport/proxy/JavaProxyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        start local 2 // org.jruby.javasupport.proxy.JavaProxyClass klass
         0: .line 416
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         1: .line 417
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            aload 1 /* classKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyClass
            astore 4 /* existing */
        start local 4 // org.jruby.javasupport.proxy.JavaProxyClass existing
         2: .line 418
            aload 4 /* existing */
            ifnull 4
            aload 4 /* existing */
            aload 3
            monitorexit
         3: areturn
         4: .line 419
      StackMap locals: java.util.Map org.jruby.javasupport.proxy.JavaProxyClass
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaProxyClasses:Ljava/util/Map;
            aload 1 /* classKey */
            aload 2 /* klass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.jruby.javasupport.proxy.JavaProxyClass existing
         5: .line 416
            aload 3
            monitorexit
         6: goto 9
      StackMap locals: org.jruby.javasupport.JavaSupportImpl org.jruby.javasupport.JavaSupport$ProxyClassKey org.jruby.javasupport.proxy.JavaProxyClass java.util.Map
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 421
      StackMap locals:
      StackMap stack:
            aload 2 /* klass */
            areturn
        end local 2 // org.jruby.javasupport.proxy.JavaProxyClass klass
        end local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   10     1  classKey  Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
            0   10     2     klass  Lorg/jruby/javasupport/proxy/JavaProxyClass;
            2    5     4  existing  Lorg/jruby/javasupport/proxy/JavaProxyClass;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
    MethodParameters:
          Name  Flags
      classKey  
      klass     

  public static org.jruby.javasupport.proxy.JavaProxyClass fetchJavaProxyClass(org.jruby.Ruby, org.jruby.javasupport.JavaSupport$ProxyClassKey);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    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.javasupport.JavaSupport$ProxyClassKey classKey
         0: .line 426
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* classKey */
            invokevirtual org.jruby.javasupport.JavaSupport.fetchJavaProxyClass:(Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   runtime  Lorg/jruby/Ruby;
            0    1     1  classKey  Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
    MethodParameters:
          Name  Flags
      runtime   final
      classKey  

  public static org.jruby.javasupport.proxy.JavaProxyClass saveJavaProxyClass(org.jruby.Ruby, org.jruby.javasupport.JavaSupport$ProxyClassKey, org.jruby.javasupport.proxy.JavaProxyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;Lorg/jruby/javasupport/proxy/JavaProxyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        start local 2 // org.jruby.javasupport.proxy.JavaProxyClass klass
         0: .line 431
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* classKey */
            aload 2 /* klass */
            invokevirtual org.jruby.javasupport.JavaSupport.saveJavaProxyClass:(Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;Lorg/jruby/javasupport/proxy/JavaProxyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            areturn
        end local 2 // org.jruby.javasupport.proxy.JavaProxyClass klass
        end local 1 // org.jruby.javasupport.JavaSupport$ProxyClassKey classKey
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   runtime  Lorg/jruby/Ruby;
            0    1     1  classKey  Lorg/jruby/javasupport/JavaSupport$ProxyClassKey;
            0    1     2     klass  Lorg/jruby/javasupport/proxy/JavaProxyClass;
    MethodParameters:
          Name  Flags
      runtime   final
      classKey  
      klass     

  public java.lang.Object getJavaObjectVariable(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Object o
        start local 2 // int i
         0: .line 439
            iload 2 /* i */
            iconst_m1
            if_icmpne 1
            aconst_null
            areturn
         1: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaObjectVariables:Ljava/util/Map;
            astore 3 /* variables */
        start local 3 // java.util.Map variables
         2: .line 442
            aload 3 /* variables */
            ifnonnull 3
            aconst_null
            areturn
         3: .line 444
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         4: .line 445
            aload 3 /* variables */
            aload 1 /* o */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 5 /* vars */
        start local 5 // java.lang.Object[] vars
         5: .line 446
            aload 5 /* vars */
            ifnull 6
            aload 5 /* vars */
            arraylength
            iload 2 /* i */
            if_icmpgt 8
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.Object[]
      StackMap stack:
         6: aload 4
            monitorexit
         7: aconst_null
            areturn
         8: .line 447
      StackMap locals:
      StackMap stack:
            aload 5 /* vars */
            iload 2 /* i */
            aaload
            aload 4
            monitorexit
         9: areturn
        end local 5 // java.lang.Object[] vars
        10: .line 444
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.Object int java.util.Map org.jruby.javasupport.JavaSupportImpl
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        11: athrow
        end local 3 // java.util.Map variables
        end local 2 // int i
        end local 1 // java.lang.Object o
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   12     1          o  Ljava/lang/Object;
            0   12     2          i  I
            2   12     3  variables  Ljava/util/Map<Ljava/lang/Object;[Ljava/lang/Object;>;
            5   10     5       vars  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           4     7      10  any
           8     9      10  any
          10    11      10  any
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      o     
      i     

  public void setJavaObjectVariable(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.jruby.javasupport.JavaSupportImpl this
        start local 1 // java.lang.Object o
        start local 2 // int i
        start local 3 // java.lang.Object v
         0: .line 453
            iload 2 /* i */
            iconst_m1
            if_icmpne 1
            return
         1: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 456
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaSupportImpl.javaObjectVariables:Ljava/util/Map;
            astore 5 /* variables */
        start local 5 // java.util.Map variables
         3: .line 458
            aload 5 /* variables */
            ifnonnull 5
         4: .line 459
            aload 0 /* this */
            new org.jruby.util.WeakIdentityHashMap
            dup
            invokespecial org.jruby.util.WeakIdentityHashMap.<init>:()V
            dup_x1
            putfield org.jruby.javasupport.JavaSupportImpl.javaObjectVariables:Ljava/util/Map;
            astore 5 /* variables */
         5: .line 462
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.util.Map
      StackMap stack:
            aload 5 /* variables */
            aload 1 /* o */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 6 /* vars */
        start local 6 // java.lang.Object[] vars
         6: .line 463
            aload 6 /* vars */
            ifnonnull 10
         7: .line 464
            iload 2 /* i */
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 6 /* vars */
         8: .line 465
            aload 5 /* variables */
            aload 1 /* o */
            aload 6 /* vars */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 466
            goto 13
        10: .line 467
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 6 /* vars */
            arraylength
            iload 2 /* i */
            if_icmpgt 13
        11: .line 468
            aload 6 /* vars */
            iload 2 /* i */
            iconst_1
            iadd
            invokestatic org.jruby.util.ArraySupport.newCopy:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 6 /* vars */
        12: .line 469
            aload 5 /* variables */
            aload 1 /* o */
            aload 6 /* vars */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 471
      StackMap locals:
      StackMap stack:
            aload 6 /* vars */
            iload 2 /* i */
            aload 3 /* v */
            aastore
        end local 6 // java.lang.Object[] vars
        end local 5 // java.util.Map variables
        14: .line 455
            aload 4
            monitorexit
        15: goto 18
      StackMap locals: org.jruby.javasupport.JavaSupportImpl java.lang.Object int java.lang.Object org.jruby.javasupport.JavaSupportImpl
      StackMap stack: java.lang.Throwable
        16: aload 4
            monitorexit
        17: athrow
        18: .line 473
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object v
        end local 2 // int i
        end local 1 // java.lang.Object o
        end local 0 // org.jruby.javasupport.JavaSupportImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lorg/jruby/javasupport/JavaSupportImpl;
            0   19     1          o  Ljava/lang/Object;
            0   19     2          i  I
            0   19     3          v  Ljava/lang/Object;
            3   14     5  variables  Ljava/util/Map<Ljava/lang/Object;[Ljava/lang/Object;>;
            6   14     6       vars  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2    15      16  any
          16    17      16  any
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      o     
      i     
      v     
}
SourceFile: "JavaSupportImpl.java"
NestMembers:
  org.jruby.javasupport.JavaSupportImpl$1  org.jruby.javasupport.JavaSupportImpl$2  org.jruby.javasupport.JavaSupportImpl$3  org.jruby.javasupport.JavaSupportImpl$4  org.jruby.javasupport.JavaSupportImpl$5  org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final ProxyClassKey = org.jruby.javasupport.JavaSupport$ProxyClassKey of org.jruby.javasupport.JavaSupport
  org.jruby.javasupport.JavaSupportImpl$1
  org.jruby.javasupport.JavaSupportImpl$2
  org.jruby.javasupport.JavaSupportImpl$3
  org.jruby.javasupport.JavaSupportImpl$4
  org.jruby.javasupport.JavaSupportImpl$5
  private final UnfinishedProxy = org.jruby.javasupport.JavaSupportImpl$UnfinishedProxy of org.jruby.javasupport.JavaSupportImpl
  public final ReferenceType = org.jruby.javasupport.util.ObjectProxyCache$ReferenceType of org.jruby.javasupport.util.ObjectProxyCache