public abstract class org.jruby.javasupport.JavaCallable extends org.jruby.javasupport.JavaAccessibleObject implements org.jruby.javasupport.ParameterTypes
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.jruby.javasupport.JavaCallable
  super_class: org.jruby.javasupport.JavaAccessibleObject
{
  protected final java.lang.Class<?>[] parameterTypes;
    descriptor: [Ljava/lang/Class;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 61
            getstatic org.jruby.util.cli.Options.REWRITE_JAVA_TRACE:Lcom/headius/options/Option;
            invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic org.jruby.javasupport.JavaCallable.REWRITE_JAVA_TRACE:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.lang.Class<?>[]);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;[Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass rubyClass
        start local 3 // java.lang.Class[] parameterTypes
         0: .line 64
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* rubyClass */
            invokespecial org.jruby.javasupport.JavaAccessibleObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 65
            aload 0 /* this */
            aload 3 /* parameterTypes */
            putfield org.jruby.javasupport.JavaCallable.parameterTypes:[Ljava/lang/Class;
         2: .line 66
            return
        end local 3 // java.lang.Class[] parameterTypes
        end local 2 // org.jruby.RubyClass rubyClass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/jruby/javasupport/JavaCallable;
            0    3     1         runtime  Lorg/jruby/Ruby;
            0    3     2       rubyClass  Lorg/jruby/RubyClass;
            0    3     3  parameterTypes  [Ljava/lang/Class;
    Signature: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;[Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      runtime         
      rubyClass       
      parameterTypes  

  public static void registerRubyMethods(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyClass result
         0: .line 69
            aload 1 /* result */
            ldc Lorg/jruby/javasupport/JavaCallable;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         1: .line 70
            return
        end local 1 // org.jruby.RubyClass result
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
            0    2     1   result  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      result   

  public final int getArity();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 72
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaCallable.parameterTypes:[Ljava/lang/Class;
            arraylength
            ireturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;

  public final java.lang.Class<?>[] getParameterTypes();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 74
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaCallable.parameterTypes:[Ljava/lang/Class;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    Signature: ()[Ljava/lang/Class<*>;

  public abstract int getModifiers();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.Class<?>[] getExceptionTypes();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()[Ljava/lang/Class<*>;

  public abstract java.lang.reflect.Type[] getGenericExceptionTypes();
    descriptor: ()[Ljava/lang/reflect/Type;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.reflect.Type[] getGenericParameterTypes();
    descriptor: ()[Ljava/lang/reflect/Type;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.annotation.Annotation[][] getParameterAnnotations();
    descriptor: ()[[Ljava/lang/annotation/Annotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isVarArgs();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String toGenericString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  protected abstract java.lang.String nameOnInspection();
    descriptor: ()Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public final org.jruby.RubyFixnum arity();
    descriptor: ()Lorg/jruby/RubyFixnum;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 93
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getArity:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public final org.jruby.RubyArray parameter_types();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 98
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getParameterTypes:()[Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.toRubyArray:(Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"argument_types", "parameter_types"})

  public org.jruby.RubyArray exception_types();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 103
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getExceptionTypes:()[Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.toRubyArray:(Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject generic_parameter_types();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 108
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject generic_exception_types();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 113
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getGenericExceptionTypes:()[Ljava/lang/reflect/Type;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject parameter_annotations();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 118
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getParameterAnnotations:()[[Ljava/lang/annotation/Annotation;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyBoolean varargs_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 123
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.isVarArgs:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"varargs?"})

  public org.jruby.RubyString to_generic_string();
    descriptor: ()Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 128
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.toGenericString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyBoolean public_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaCallable this
         0: .line 133
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/Ruby;Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"public?"})

  protected final void checkArity(int);
    descriptor: (I)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // int length
         0: .line 137
            iload 1 /* length */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getArity:()I
            if_icmpeq 2
         1: .line 138
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            iload 1 /* length */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getArity:()I
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int length
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/javasupport/JavaCallable;
            0    3     1  length  I
    MethodParameters:
        Name  Flags
      length  final

  final java.lang.Object[] convertArguments(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)[Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 143
            aload 1 /* args */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaCallable.parameterTypes:[Ljava/lang/Class;
            iconst_0
            invokestatic org.jruby.javasupport.JavaUtil.convertArguments:([Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;I)[Ljava/lang/Object;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaCallable;
            0    1     1  args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      args  final

  final java.lang.Object[] convertArguments(org.jruby.runtime.builtin.IRubyObject[], int);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // int offset
         0: .line 147
            aload 1 /* args */
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaCallable.parameterTypes:[Ljava/lang/Class;
            iload 2 /* offset */
            invokestatic org.jruby.javasupport.JavaUtil.convertArguments:([Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;I)[Ljava/lang/Object;
            areturn
        end local 2 // int offset
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jruby/javasupport/JavaCallable;
            0    1     1    args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  offset  I
    MethodParameters:
        Name  Flags
      args    final
      offset  

  protected final org.jruby.runtime.builtin.IRubyObject handleThrowable(org.jruby.runtime.ThreadContext, java.lang.Throwable);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Throwable;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.Throwable ex
         0: .line 151
            aload 2 /* ex */
            instanceof org.jruby.exceptions.JumpException
            ifeq 2
         1: .line 154
            aload 2 /* ex */
            checkcast org.jruby.exceptions.JumpException
            athrow
         2: .line 157
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.javasupport.JavaCallable.REWRITE_JAVA_TRACE:Z
            ifeq 4
         3: .line 158
            aload 1 /* context */
            aload 2 /* ex */
            invokestatic org.jruby.runtime.Helpers.rewriteStackTraceAndThrow:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Throwable;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         4: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* ex */
            invokestatic org.jruby.runtime.Helpers.throwException:(Ljava/lang/Throwable;)V
         5: .line 162
            aconst_null
            areturn
        end local 2 // java.lang.Throwable ex
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/javasupport/JavaCallable;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            0    6     2       ex  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      context  
      ex       final

  protected final org.jruby.runtime.builtin.IRubyObject handleInvocationTargetEx(org.jruby.runtime.ThreadContext, java.lang.reflect.InvocationTargetException);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/reflect/InvocationTargetException;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.lang.reflect.InvocationTargetException ex
         0: .line 166
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            invokevirtual org.jruby.javasupport.JavaCallable.handleThrowable:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Throwable;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // java.lang.reflect.InvocationTargetException ex
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/javasupport/JavaCallable;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2       ex  Ljava/lang/reflect/InvocationTargetException;
    MethodParameters:
         Name  Flags
      context  
      ex       

  final org.jruby.runtime.builtin.IRubyObject handleIllegalAccessEx(java.lang.IllegalAccessException, java.lang.reflect.Member);
    descriptor: (Ljava/lang/IllegalAccessException;Ljava/lang/reflect/Member;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // java.lang.IllegalAccessException ex
        start local 2 // java.lang.reflect.Member target
         0: .line 170
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "illegal access on '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* target */
            invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ex */
            invokevirtual java.lang.IllegalAccessException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.reflect.Member target
        end local 1 // java.lang.IllegalAccessException ex
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jruby/javasupport/JavaCallable;
            0    1     1      ex  Ljava/lang/IllegalAccessException;
            0    1     2  target  Ljava/lang/reflect/Member;
    Exceptions:
      throws org.jruby.exceptions.RaiseException
    MethodParameters:
        Name  Flags
      ex      final
      target  

  final org.jruby.runtime.builtin.IRubyObject handleIllegalAccessEx(java.lang.IllegalAccessException, java.lang.reflect.Constructor);
    descriptor: (Ljava/lang/IllegalAccessException;Ljava/lang/reflect/Constructor;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // java.lang.IllegalAccessException ex
        start local 2 // java.lang.reflect.Constructor target
         0: .line 174
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "illegal access on constructor for type '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* target */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ex */
            invokevirtual java.lang.IllegalAccessException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.reflect.Constructor target
        end local 1 // java.lang.IllegalAccessException ex
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jruby/javasupport/JavaCallable;
            0    1     1      ex  Ljava/lang/IllegalAccessException;
            0    1     2  target  Ljava/lang/reflect/Constructor;
    Exceptions:
      throws org.jruby.exceptions.RaiseException
    MethodParameters:
        Name  Flags
      ex      final
      target  

  final org.jruby.runtime.builtin.IRubyObject handlelIllegalArgumentEx(java.lang.IllegalArgumentException, java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/IllegalArgumentException;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0090) ACC_FINAL, ACC_VARARGS
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // java.lang.IllegalArgumentException ex
        start local 2 // java.lang.reflect.Method target
        start local 3 // java.lang.Object[] arguments
         0: .line 178
            new java.lang.StringBuilder
            dup
            bipush 64
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* msg */
        start local 4 // java.lang.StringBuilder msg
         1: .line 179
            aload 4 /* msg */
            ldc "for method "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* target */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 180
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* target */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 181
            aload 4 /* msg */
            ldc " expected "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            aload 0 /* this */
            aload 4 /* msg */
            invokevirtual org.jruby.javasupport.JavaCallable.dumpParameterTypes:(Ljava/lang/StringBuilder;)V
         4: .line 182
            aload 4 /* msg */
            ldc "; got: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            aload 3 /* arguments */
            aload 4 /* msg */
            invokestatic org.jruby.javasupport.JavaCallable.dumpArgTypes:([Ljava/lang/Object;Ljava/lang/StringBuilder;)Ljava/lang/CharSequence;
            pop
         5: .line 183
            aload 4 /* msg */
            ldc "; error: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ex */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 184
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 4 /* msg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.lang.StringBuilder msg
        end local 3 // java.lang.Object[] arguments
        end local 2 // java.lang.reflect.Method target
        end local 1 // java.lang.IllegalArgumentException ex
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/jruby/javasupport/JavaCallable;
            0    7     1         ex  Ljava/lang/IllegalArgumentException;
            0    7     2     target  Ljava/lang/reflect/Method;
            0    7     3  arguments  [Ljava/lang/Object;
            1    7     4        msg  Ljava/lang/StringBuilder;
    Exceptions:
      throws org.jruby.exceptions.RaiseException
    MethodParameters:
           Name  Flags
      ex         final
      target     
      arguments  

  final org.jruby.runtime.builtin.IRubyObject handlelIllegalArgumentEx(java.lang.IllegalArgumentException, java.lang.reflect.Constructor, java.lang.Object[]);
    descriptor: (Ljava/lang/IllegalArgumentException;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0090) ACC_FINAL, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // java.lang.IllegalArgumentException ex
        start local 2 // java.lang.reflect.Constructor target
        start local 3 // java.lang.Object[] arguments
         0: .line 188
            aload 0 /* this */
            aload 1 /* ex */
            aload 2 /* target */
            iconst_1
            aload 3 /* arguments */
            invokevirtual org.jruby.javasupport.JavaCallable.handlelIllegalArgumentEx:(Ljava/lang/IllegalArgumentException;Ljava/lang/reflect/Constructor;Z[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.lang.Object[] arguments
        end local 2 // java.lang.reflect.Constructor target
        end local 1 // java.lang.IllegalArgumentException ex
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/javasupport/JavaCallable;
            0    1     1         ex  Ljava/lang/IllegalArgumentException;
            0    1     2     target  Ljava/lang/reflect/Constructor;
            0    1     3  arguments  [Ljava/lang/Object;
    Exceptions:
      throws org.jruby.exceptions.RaiseException
    MethodParameters:
           Name  Flags
      ex         final
      target     
      arguments  

  final org.jruby.runtime.builtin.IRubyObject handlelIllegalArgumentEx(java.lang.IllegalArgumentException, java.lang.reflect.Constructor, boolean, java.lang.Object[]);
    descriptor: (Ljava/lang/IllegalArgumentException;Ljava/lang/reflect/Constructor;Z[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0090) ACC_FINAL, ACC_VARARGS
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // java.lang.IllegalArgumentException ex
        start local 2 // java.lang.reflect.Constructor target
        start local 3 // boolean targetInfo
        start local 4 // java.lang.Object[] arguments
         0: .line 192
            new java.lang.StringBuilder
            dup
            bipush 64
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* msg */
        start local 5 // java.lang.StringBuilder msg
         1: .line 193
            iload 3 /* targetInfo */
            ifeq 3
         2: .line 194
            aload 5 /* msg */
            ldc "for constructor of type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* target */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 196
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 5 /* msg */
            ldc " expected "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            aload 0 /* this */
            aload 5 /* msg */
            invokevirtual org.jruby.javasupport.JavaCallable.dumpParameterTypes:(Ljava/lang/StringBuilder;)V
         4: .line 197
            aload 5 /* msg */
            ldc "; got: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            aload 4 /* arguments */
            aload 5 /* msg */
            invokestatic org.jruby.javasupport.JavaCallable.dumpArgTypes:([Ljava/lang/Object;Ljava/lang/StringBuilder;)Ljava/lang/CharSequence;
            pop
         5: .line 198
            aload 5 /* msg */
            ldc "; error: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ex */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 199
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaCallable.getRuntime:()Lorg/jruby/Ruby;
            aload 5 /* msg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.lang.StringBuilder msg
        end local 4 // java.lang.Object[] arguments
        end local 3 // boolean targetInfo
        end local 2 // java.lang.reflect.Constructor target
        end local 1 // java.lang.IllegalArgumentException ex
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/jruby/javasupport/JavaCallable;
            0    7     1          ex  Ljava/lang/IllegalArgumentException;
            0    7     2      target  Ljava/lang/reflect/Constructor;
            0    7     3  targetInfo  Z
            0    7     4   arguments  [Ljava/lang/Object;
            1    7     5         msg  Ljava/lang/StringBuilder;
    Exceptions:
      throws org.jruby.exceptions.RaiseException
    MethodParameters:
            Name  Flags
      ex          final
      target      
      targetInfo  final
      arguments   

  private void dumpParameterTypes(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaCallable this
        start local 1 // java.lang.StringBuilder str
         0: .line 203
            aload 1 /* str */
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         1: .line 204
            aload 1 /* str */
            aload 0 /* this */
            iconst_0
            invokestatic org.jruby.javasupport.JavaCallable.inspectParameterTypes:(Ljava/lang/StringBuilder;Lorg/jruby/javasupport/ParameterTypes;Z)Ljava/lang/StringBuilder;
            pop
         2: .line 205
            aload 1 /* str */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 206
            return
        end local 1 // java.lang.StringBuilder str
        end local 0 // org.jruby.javasupport.JavaCallable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/javasupport/JavaCallable;
            0    4     1   str  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      str   final

  static java.lang.CharSequence dumpArgTypes(java.lang.Object[], java.lang.StringBuilder);
    descriptor: ([Ljava/lang/Object;Ljava/lang/StringBuilder;)Ljava/lang/CharSequence;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object[] args
        start local 1 // java.lang.StringBuilder str
         0: .line 209
            aload 1 /* str */
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         1: .line 210
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 211
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            ifle 4
            aload 1 /* str */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* args */
            iload 2 /* i */
            aaload
            ifnonnull 5
            aload 1 /* str */
            ldc "null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 6
         5: .line 213
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            aload 0 /* args */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 210
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* args */
            arraylength
            if_icmplt 3
        end local 2 // int i
         8: .line 215
            aload 1 /* str */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 216
            aload 1 /* str */
            areturn
        end local 1 // java.lang.StringBuilder str
        end local 0 // java.lang.Object[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  args  [Ljava/lang/Object;
            0   10     1   str  Ljava/lang/StringBuilder;
            2    8     2     i  I
    MethodParameters:
      Name  Flags
      args  final
      str   final

  public static java.lang.StringBuilder inspectParameterTypes(java.lang.StringBuilder, org.jruby.javasupport.ParameterTypes);
    descriptor: (Ljava/lang/StringBuilder;Lorg/jruby/javasupport/ParameterTypes;)Ljava/lang/StringBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder str
        start local 1 // org.jruby.javasupport.ParameterTypes target
         0: .line 221
            aload 0 /* str */
            aload 1 /* target */
            iconst_1
            invokestatic org.jruby.javasupport.JavaCallable.inspectParameterTypes:(Ljava/lang/StringBuilder;Lorg/jruby/javasupport/ParameterTypes;Z)Ljava/lang/StringBuilder;
            areturn
        end local 1 // org.jruby.javasupport.ParameterTypes target
        end local 0 // java.lang.StringBuilder str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     str  Ljava/lang/StringBuilder;
            0    1     1  target  Lorg/jruby/javasupport/ParameterTypes;
    MethodParameters:
        Name  Flags
      str     final
      target  final

  private static java.lang.StringBuilder inspectParameterTypes(java.lang.StringBuilder, org.jruby.javasupport.ParameterTypes, boolean);
    descriptor: (Ljava/lang/StringBuilder;Lorg/jruby/javasupport/ParameterTypes;Z)Ljava/lang/StringBuilder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.StringBuilder str
        start local 1 // org.jruby.javasupport.ParameterTypes target
        start local 2 // boolean brackets
         0: .line 226
            iload 2 /* brackets */
            ifeq 1
            aload 0 /* str */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         1: .line 227
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            invokeinterface org.jruby.javasupport.ParameterTypes.getParameterTypes:()[Ljava/lang/Class;
            astore 3 /* types */
        start local 3 // java.lang.Class[] types
         2: .line 228
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 229
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 0 /* str */
            aload 3 /* types */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 230
            iload 4 /* i */
            aload 3 /* types */
            arraylength
            iconst_1
            isub
            if_icmpge 6
            aload 0 /* str */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 228
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 3 /* types */
            arraylength
            if_icmplt 4
        end local 4 // int i
         8: .line 232
            iload 2 /* brackets */
            ifeq 9
            aload 0 /* str */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            areturn
        end local 3 // java.lang.Class[] types
        end local 2 // boolean brackets
        end local 1 // org.jruby.javasupport.ParameterTypes target
        end local 0 // java.lang.StringBuilder str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0       str  Ljava/lang/StringBuilder;
            0   10     1    target  Lorg/jruby/javasupport/ParameterTypes;
            0   10     2  brackets  Z
            2   10     3     types  [Ljava/lang/Class;
            3    8     4         i  I
    MethodParameters:
          Name  Flags
      str       final
      target    final
      brackets  final
}
SourceFile: "JavaCallable.java"