public class org.jruby.javasupport.Java$JCreateMethod extends org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN implements org.jruby.java.dispatch.CallableSelector$CallableCache<org.jruby.javasupport.proxy.JavaProxyConstructor>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.Java$JCreateMethod
  super_class: org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN
{
  private final org.jruby.util.collections.NonBlockingHashMapLong<org.jruby.javasupport.proxy.JavaProxyConstructor> cache;
    descriptor: Lorg/jruby/util/collections/NonBlockingHashMapLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/jruby/util/collections/NonBlockingHashMapLong<Lorg/jruby/javasupport/proxy/JavaProxyConstructor;>;

  void <init>(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.RubyModule cls
         0: .line 611
            aload 0 /* this */
            aload 1 /* cls */
            getstatic org.jruby.runtime.Visibility.PUBLIC:Lorg/jruby/runtime/Visibility;
            ldc "__jcreate!"
            invokespecial org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.<init>:(Lorg/jruby/RubyModule;Lorg/jruby/runtime/Visibility;Ljava/lang/String;)V
         1: .line 608
            aload 0 /* this */
            new org.jruby.util.collections.NonBlockingHashMapLong
            dup
            bipush 8
            invokespecial org.jruby.util.collections.NonBlockingHashMapLong.<init>:(I)V
            putfield org.jruby.javasupport.Java$JCreateMethod.cache:Lorg/jruby/util/collections/NonBlockingHashMapLong;
         2: .line 612
            return
        end local 1 // org.jruby.RubyModule cls
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    3     1   cls  Lorg/jruby/RubyModule;
    MethodParameters:
      Name  Flags
      cls   

  private static org.jruby.javasupport.proxy.JavaProxyClass getProxyClass(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 615
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            astore 1 /* metaClass */
        start local 1 // org.jruby.RubyClass metaClass
         1: .line 616
            aload 1 /* metaClass */
            ldc "@java_proxy_class"
            invokevirtual org.jruby.RubyClass.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* proxyClass */
        start local 2 // org.jruby.runtime.builtin.IRubyObject proxyClass
         2: .line 617
            aload 2 /* proxyClass */
            ifnull 3
            aload 2 /* proxyClass */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 5
         3: .line 618
      StackMap locals: org.jruby.RubyClass org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* metaClass */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.getProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            astore 2 /* proxyClass */
         4: .line 619
            aload 1 /* metaClass */
            ldc "@java_proxy_class"
            aload 2 /* proxyClass */
            invokevirtual org.jruby.RubyClass.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         5: .line 621
      StackMap locals:
      StackMap stack:
            aload 2 /* proxyClass */
            checkcast org.jruby.javasupport.proxy.JavaProxyClass
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject proxyClass
        end local 1 // org.jruby.RubyClass metaClass
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        self  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     1   metaClass  Lorg/jruby/RubyClass;
            2    6     2  proxyClass  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      self  final

  public final org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.Block block
         0: .line 626
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3    clazz  Lorg/jruby/RubyModule;
            0    1     4     name  Ljava/lang/String;
            0    1     5    block  Lorg/jruby/runtime/Block;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      block    

  public final org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=10, args_size=7
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.Block block
         0: .line 631
            aload 2 /* self */
            invokestatic org.jruby.javasupport.Java$JCreateMethod.getProxyClass:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getConstructors:()[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 7 /* constructors */
        start local 7 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
         1: .line 634
            aload 7 /* constructors */
            arraylength
            tableswitch { // 1 - 1
                    1: 2
              default: 4
          }
         2: .line 635
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 7 /* constructors */
            aload 5 /* arg0 */
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.matchConstructor0ArityOne:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 8 /* matching */
        start local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         3: goto 5
        end local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         4: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 7 /* constructors */
            aload 5 /* arg0 */
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.matchConstructorArityOne:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 8 /* matching */
        start local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         5: .line 639
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 8 /* matching */
            aload 2 /* self */
            aload 5 /* arg0 */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyConstructor.newInstance:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaObject;
            astore 9 /* newObject */
        start local 9 // org.jruby.javasupport.JavaObject newObject
         6: .line 640
            aload 2 /* self */
            aload 2 /* self */
            aload 9 /* newObject */
            invokestatic org.jruby.javasupport.JavaUtilities.set_java_object:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 9 // org.jruby.javasupport.JavaObject newObject
        end local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
        end local 7 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 6 // org.jruby.runtime.Block block
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    7     1       context  Lorg/jruby/runtime/ThreadContext;
            0    7     2          self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3         clazz  Lorg/jruby/RubyModule;
            0    7     4          name  Ljava/lang/String;
            0    7     5          arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     6         block  Lorg/jruby/runtime/Block;
            1    7     7  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            3    4     8      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            5    7     8      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            6    7     9     newObject  Lorg/jruby/javasupport/JavaObject;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      block    

  public final org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 645
            aload 5 /* args */
            arraylength
            istore 6 /* arity */
        start local 6 // int arity
         1: .line 646
            aload 2 /* self */
            invokestatic org.jruby.javasupport.Java$JCreateMethod.getProxyClass:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
            invokevirtual org.jruby.javasupport.proxy.JavaProxyClass.getConstructors:()[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 7 /* constructors */
        start local 7 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
         2: .line 649
            aload 7 /* constructors */
            arraylength
            tableswitch { // 1 - 1
                    1: 3
              default: 5
          }
         3: .line 650
      StackMap locals: int org.jruby.javasupport.proxy.JavaProxyConstructor[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 7 /* constructors */
            iload 6 /* arity */
            aload 5 /* args */
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.matchConstructor0:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;I[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 8 /* matching */
        start local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         4: goto 6
        end local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         5: .line 651
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 7 /* constructors */
            iload 6 /* arity */
            aload 5 /* args */
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.matchConstructor:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;I[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            astore 8 /* matching */
        start local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         6: .line 654
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 8 /* matching */
            aload 2 /* self */
            aload 5 /* args */
            invokevirtual org.jruby.javasupport.proxy.JavaProxyConstructor.newInstance:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaObject;
            astore 9 /* newObject */
        start local 9 // org.jruby.javasupport.JavaObject newObject
         7: .line 655
            aload 2 /* self */
            aload 2 /* self */
            aload 9 /* newObject */
            invokestatic org.jruby.javasupport.JavaUtilities.set_java_object:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 9 // org.jruby.javasupport.JavaObject newObject
        end local 8 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
        end local 7 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 6 // int arity
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    8     1       context  Lorg/jruby/runtime/ThreadContext;
            0    8     2          self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3         clazz  Lorg/jruby/RubyModule;
            0    8     4          name  Ljava/lang/String;
            0    8     5          args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     6         arity  I
            2    8     7  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            4    5     8      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            6    8     8      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            7    8     9     newObject  Lorg/jruby/javasupport/JavaObject;
    MethodParameters:
         Name  Flags
      context  final
      self     
      clazz    
      name     
      args     

  private org.jruby.javasupport.proxy.JavaProxyConstructor matchConstructor0ArityOne(org.jruby.runtime.ThreadContext, org.jruby.javasupport.proxy.JavaProxyConstructor[], org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 661
            iconst_1
            aload 2 /* constructors */
            iconst_0
            invokestatic org.jruby.javasupport.Java.checkCallableForArity:(I[Lorg/jruby/javasupport/ParameterTypes;I)Lorg/jruby/javasupport/ParameterTypes;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 4 /* forArity */
        start local 4 // org.jruby.javasupport.proxy.JavaProxyConstructor forArity
         1: .line 663
            aload 4 /* forArity */
            ifnonnull 3
         2: .line 664
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 668
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            iconst_1
            anewarray org.jruby.javasupport.proxy.JavaProxyConstructor
            dup
            iconst_0
            aload 4 /* forArity */
            aastore
            aload 3 /* arg0 */
         4: .line 667
            invokestatic org.jruby.java.dispatch.CallableSelector.matchingCallableArityOne:(Lorg/jruby/Ruby;Lorg/jruby/java/dispatch/CallableSelector$CallableCache;[Lorg/jruby/javasupport/ParameterTypes;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/ParameterTypes;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 5 /* matching */
        start local 5 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         5: .line 671
            aload 5 /* matching */
            ifnonnull 7
         6: .line 672
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 674
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 5 /* matching */
            areturn
        end local 5 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
        end local 4 // org.jruby.javasupport.proxy.JavaProxyConstructor forArity
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    8     1       context  Lorg/jruby/runtime/ThreadContext;
            0    8     2  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            0    8     3          arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     4      forArity  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            5    8     5      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    MethodParameters:
              Name  Flags
      context       final
      constructors  final
      arg0          final

  private org.jruby.javasupport.proxy.JavaProxyConstructor matchConstructor0(org.jruby.runtime.ThreadContext, org.jruby.javasupport.proxy.JavaProxyConstructor[], int, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;I[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        start local 3 // int arity
        start local 4 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 680
            iload 3 /* arity */
            aload 2 /* constructors */
            iconst_0
            invokestatic org.jruby.javasupport.Java.checkCallableForArity:(I[Lorg/jruby/javasupport/ParameterTypes;I)Lorg/jruby/javasupport/ParameterTypes;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 5 /* forArity */
        start local 5 // org.jruby.javasupport.proxy.JavaProxyConstructor forArity
         1: .line 682
            aload 5 /* forArity */
            ifnonnull 3
         2: .line 683
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 687
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            iconst_1
            anewarray org.jruby.javasupport.proxy.JavaProxyConstructor
            dup
            iconst_0
            aload 5 /* forArity */
            aastore
            aload 4 /* args */
         4: .line 686
            invokestatic org.jruby.java.dispatch.CallableSelector.matchingCallableArityN:(Lorg/jruby/Ruby;Lorg/jruby/java/dispatch/CallableSelector$CallableCache;[Lorg/jruby/javasupport/ParameterTypes;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/ParameterTypes;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 6 /* matching */
        start local 6 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         5: .line 690
            aload 6 /* matching */
            ifnonnull 7
         6: .line 691
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 693
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 6 /* matching */
            areturn
        end local 6 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
        end local 5 // org.jruby.javasupport.proxy.JavaProxyConstructor forArity
        end local 4 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 3 // int arity
        end local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    8     1       context  Lorg/jruby/runtime/ThreadContext;
            0    8     2  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            0    8     3         arity  I
            0    8     4          args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     5      forArity  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            5    8     6      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    MethodParameters:
              Name  Flags
      context       final
      constructors  final
      arity         final
      args          final

  private org.jruby.javasupport.proxy.JavaProxyConstructor matchConstructorArityOne(org.jruby.runtime.ThreadContext, org.jruby.javasupport.proxy.JavaProxyConstructor[], org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 698
            iconst_1
            aload 2 /* constructors */
            invokestatic org.jruby.javasupport.Java.findCallablesForArity:(I[Lorg/jruby/javasupport/ParameterTypes;)Ljava/util/ArrayList;
            astore 4 /* forArity */
        start local 4 // java.util.ArrayList forArity
         1: .line 700
            aload 4 /* forArity */
            invokevirtual java.util.ArrayList.size:()I
            ifne 3
         2: .line 701
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 705
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            aload 4 /* forArity */
            aload 4 /* forArity */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.jruby.javasupport.proxy.JavaProxyConstructor
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor[]
            aload 3 /* arg0 */
         4: .line 704
            invokestatic org.jruby.java.dispatch.CallableSelector.matchingCallableArityOne:(Lorg/jruby/Ruby;Lorg/jruby/java/dispatch/CallableSelector$CallableCache;[Lorg/jruby/javasupport/ParameterTypes;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/ParameterTypes;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 5 /* matching */
        start local 5 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         5: .line 708
            aload 5 /* matching */
            ifnonnull 7
         6: .line 709
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 711
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 5 /* matching */
            areturn
        end local 5 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
        end local 4 // java.util.ArrayList forArity
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    8     1       context  Lorg/jruby/runtime/ThreadContext;
            0    8     2  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            0    8     3          arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     4      forArity  Ljava/util/ArrayList<Lorg/jruby/javasupport/proxy/JavaProxyConstructor;>;
            5    8     5      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    MethodParameters:
              Name  Flags
      context       final
      constructors  final
      arg0          final

  private org.jruby.javasupport.proxy.JavaProxyConstructor matchConstructor(org.jruby.runtime.ThreadContext, org.jruby.javasupport.proxy.JavaProxyConstructor[], int, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/javasupport/proxy/JavaProxyConstructor;I[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        start local 3 // int arity
        start local 4 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 717
            iload 3 /* arity */
            aload 2 /* constructors */
            invokestatic org.jruby.javasupport.Java.findCallablesForArity:(I[Lorg/jruby/javasupport/ParameterTypes;)Ljava/util/ArrayList;
            astore 5 /* forArity */
        start local 5 // java.util.ArrayList forArity
         1: .line 719
            aload 5 /* forArity */
            invokevirtual java.util.ArrayList.size:()I
            ifne 3
         2: .line 720
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 724
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            aload 5 /* forArity */
            aload 5 /* forArity */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.jruby.javasupport.proxy.JavaProxyConstructor
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor[]
            aload 4 /* args */
         4: .line 723
            invokestatic org.jruby.java.dispatch.CallableSelector.matchingCallableArityN:(Lorg/jruby/Ruby;Lorg/jruby/java/dispatch/CallableSelector$CallableCache;[Lorg/jruby/javasupport/ParameterTypes;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/ParameterTypes;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            astore 6 /* matching */
        start local 6 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
         5: .line 727
            aload 6 /* matching */
            ifnonnull 7
         6: .line 728
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong number of arguments for constructor"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 730
      StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor
      StackMap stack:
            aload 6 /* matching */
            areturn
        end local 6 // org.jruby.javasupport.proxy.JavaProxyConstructor matching
        end local 5 // java.util.ArrayList forArity
        end local 4 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 3 // int arity
        end local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor[] constructors
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    8     1       context  Lorg/jruby/runtime/ThreadContext;
            0    8     2  constructors  [Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            0    8     3         arity  I
            0    8     4          args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     5      forArity  Ljava/util/ArrayList<Lorg/jruby/javasupport/proxy/JavaProxyConstructor;>;
            5    8     6      matching  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    MethodParameters:
              Name  Flags
      context       final
      constructors  final
      arity         final
      args          final

  public final org.jruby.javasupport.proxy.JavaProxyConstructor getSignature(int);
    descriptor: (I)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // int signatureCode
         0: .line 734
            aload 0 /* this */
            getfield org.jruby.javasupport.Java$JCreateMethod.cache:Lorg/jruby/util/collections/NonBlockingHashMapLong;
            iload 1 /* signatureCode */
            i2l
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.get:(J)Ljava/lang/Object;
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            areturn
        end local 1 // int signatureCode
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    1     1  signatureCode  I
    MethodParameters:
               Name  Flags
      signatureCode  

  public final void putSignature(int, org.jruby.javasupport.proxy.JavaProxyConstructor);
    descriptor: (ILorg/jruby/javasupport/proxy/JavaProxyConstructor;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.Java$JCreateMethod this
        start local 1 // int signatureCode
        start local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor callable
         0: .line 738
            aload 0 /* this */
            getfield org.jruby.javasupport.Java$JCreateMethod.cache:Lorg/jruby/util/collections/NonBlockingHashMapLong;
            iload 1 /* signatureCode */
            i2l
            aload 2 /* callable */
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.put:(JLjava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 739
            return
        end local 2 // org.jruby.javasupport.proxy.JavaProxyConstructor callable
        end local 1 // int signatureCode
        end local 0 // org.jruby.javasupport.Java$JCreateMethod this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/jruby/javasupport/Java$JCreateMethod;
            0    2     1  signatureCode  I
            0    2     2       callable  Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
    MethodParameters:
               Name  Flags
      signatureCode  
      callable       

  public org.jruby.javasupport.ParameterTypes getSignature(int);
    descriptor: (I)Lorg/jruby/javasupport/ParameterTypes;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.getSignature:(I)Lorg/jruby/javasupport/proxy/JavaProxyConstructor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void putSignature(int, org.jruby.javasupport.ParameterTypes);
    descriptor: (ILorg/jruby/javasupport/ParameterTypes;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            iload 1
            aload 2
            checkcast org.jruby.javasupport.proxy.JavaProxyConstructor
            invokevirtual org.jruby.javasupport.Java$JCreateMethod.putSignature:(ILorg/jruby/javasupport/proxy/JavaProxyConstructor;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/jruby/internal/runtime/methods/JavaMethod$JavaMethodN;Lorg/jruby/java/dispatch/CallableSelector$CallableCache<Lorg/jruby/javasupport/proxy/JavaProxyConstructor;>;
SourceFile: "Java.java"
NestHost: org.jruby.javasupport.Java
InnerClasses:
  public abstract JavaMethodN = org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN of org.jruby.internal.runtime.methods.JavaMethod
  public abstract CallableCache = org.jruby.java.dispatch.CallableSelector$CallableCache of org.jruby.java.dispatch.CallableSelector
  public JCreateMethod = org.jruby.javasupport.Java$JCreateMethod of org.jruby.javasupport.Java