public class com.sun.tools.example.debug.bdi.MethodBreakpointSpec extends com.sun.tools.example.debug.bdi.BreakpointSpec
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.example.debug.bdi.MethodBreakpointSpec
  super_class: com.sun.tools.example.debug.bdi.BreakpointSpec
{
  java.lang.String methodId;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.util.List<java.lang.String> methodArgs;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/String;>;

  void <init>(com.sun.tools.example.debug.bdi.EventRequestSpecList, com.sun.tools.example.debug.bdi.ReferenceTypeSpec, java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Lcom/sun/tools/example/debug/bdi/EventRequestSpecList;Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // com.sun.tools.example.debug.bdi.EventRequestSpecList specs
        start local 2 // com.sun.tools.example.debug.bdi.ReferenceTypeSpec refSpec
        start local 3 // java.lang.String methodId
        start local 4 // java.util.List methodArgs
         0: .line 48
            aload 0 /* this */
            aload 1 /* specs */
            aload 2 /* refSpec */
            invokespecial com.sun.tools.example.debug.bdi.BreakpointSpec.<init>:(Lcom/sun/tools/example/debug/bdi/EventRequestSpecList;Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;)V
         1: .line 49
            aload 0 /* this */
            aload 3 /* methodId */
            putfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
         2: .line 50
            aload 0 /* this */
            aload 4 /* methodArgs */
            putfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
         3: .line 51
            return
        end local 4 // java.util.List methodArgs
        end local 3 // java.lang.String methodId
        end local 2 // com.sun.tools.example.debug.bdi.ReferenceTypeSpec refSpec
        end local 1 // com.sun.tools.example.debug.bdi.EventRequestSpecList specs
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0    4     1       specs  Lcom/sun/tools/example/debug/bdi/EventRequestSpecList;
            0    4     2     refSpec  Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            0    4     3    methodId  Ljava/lang/String;
            0    4     4  methodArgs  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Lcom/sun/tools/example/debug/bdi/EventRequestSpecList;Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
            Name  Flags
      specs       
      refSpec     
      methodId    
      methodArgs  

  void resolve(com.sun.jdi.ReferenceType);
    descriptor: (Lcom/sun/jdi/ReferenceType;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // com.sun.jdi.ReferenceType refType
         0: .line 62
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.isValidMethodName:(Ljava/lang/String;)Z
            ifne 2
         1: .line 63
            new com.sun.tools.example.debug.bdi.MalformedMemberNameException
            dup
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            invokespecial com.sun.tools.example.debug.bdi.MalformedMemberNameException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 65
      StackMap locals:
      StackMap stack:
            aload 1 /* refType */
            instanceof com.sun.jdi.ClassType
            ifne 4
         3: .line 66
            new com.sun.jdi.InvalidTypeException
            dup
            invokespecial com.sun.jdi.InvalidTypeException.<init>:()V
            athrow
         4: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* refType */
            checkcast com.sun.jdi.ClassType
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.location:(Lcom/sun/jdi/ClassType;)Lcom/sun/jdi/Location;
            astore 2 /* location */
        start local 2 // com.sun.jdi.Location location
         5: .line 69
            aload 0 /* this */
            aload 1 /* refType */
            invokeinterface com.sun.jdi.ReferenceType.virtualMachine:()Lcom/sun/jdi/VirtualMachine;
            invokeinterface com.sun.jdi.VirtualMachine.eventRequestManager:()Lcom/sun/jdi/request/EventRequestManager;
         6: .line 70
            aload 2 /* location */
            invokeinterface com.sun.jdi.request.EventRequestManager.createBreakpointRequest:(Lcom/sun/jdi/Location;)Lcom/sun/jdi/request/BreakpointRequest;
         7: .line 69
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.setRequest:(Lcom/sun/jdi/request/EventRequest;)V
         8: .line 71
            return
        end local 2 // com.sun.jdi.Location location
        end local 1 // com.sun.jdi.ReferenceType refType
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0    9     1   refType  Lcom/sun/jdi/ReferenceType;
            5    9     2  location  Lcom/sun/jdi/Location;
    Exceptions:
      throws com.sun.tools.example.debug.bdi.MalformedMemberNameException, com.sun.tools.example.debug.bdi.AmbiguousMethodException, com.sun.jdi.InvalidTypeException, java.lang.NoSuchMethodException, com.sun.tools.example.debug.bdi.NoSessionException
    MethodParameters:
         Name  Flags
      refType  

  private com.sun.jdi.Location location(com.sun.jdi.ClassType);
    descriptor: (Lcom/sun/jdi/ClassType;)Lcom/sun/jdi/Location;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // com.sun.jdi.ClassType clazz
         0: .line 77
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.findMatchingMethod:(Lcom/sun/jdi/ClassType;)Lcom/sun/jdi/Method;
            astore 2 /* method */
        start local 2 // com.sun.jdi.Method method
         1: .line 78
            aload 2 /* method */
            invokeinterface com.sun.jdi.Method.location:()Lcom/sun/jdi/Location;
            astore 3 /* location */
        start local 3 // com.sun.jdi.Location location
         2: .line 79
            aload 3 /* location */
            areturn
        end local 3 // com.sun.jdi.Location location
        end local 2 // com.sun.jdi.Method method
        end local 1 // com.sun.jdi.ClassType clazz
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0    3     1     clazz  Lcom/sun/jdi/ClassType;
            1    3     2    method  Lcom/sun/jdi/Method;
            2    3     3  location  Lcom/sun/jdi/Location;
    Exceptions:
      throws com.sun.tools.example.debug.bdi.AmbiguousMethodException, java.lang.NoSuchMethodException, com.sun.tools.example.debug.bdi.NoSessionException
    MethodParameters:
       Name  Flags
      clazz  

  public java.lang.String methodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
         0: .line 83
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;

  public java.util.List<java.lang.String> methodArgs();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
         0: .line 87
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            areturn
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
         0: .line 92
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.refSpec:Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            invokeinterface com.sun.tools.example.debug.bdi.ReferenceTypeSpec.hashCode:()I
         1: .line 93
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            ifnull 2
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            goto 3
      StackMap locals:
      StackMap stack: int
         2: iconst_0
         3: .line 92
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec
      StackMap stack: int int
            iadd
         4: .line 94
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            ifnull 5
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            invokeinterface java.util.List.hashCode:()I
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
         6: .line 92
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec
      StackMap stack: int int
            iadd
            ireturn
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // java.lang.Object obj
         0: .line 99
            aload 1 /* obj */
            instanceof com.sun.tools.example.debug.bdi.MethodBreakpointSpec
            ifeq 7
         1: .line 100
            aload 1 /* obj */
            checkcast com.sun.tools.example.debug.bdi.MethodBreakpointSpec
            astore 2 /* breakpoint */
        start local 2 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec breakpoint
         2: .line 102
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            aload 2 /* breakpoint */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 103
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            aload 2 /* breakpoint */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 104
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.refSpec:Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            aload 2 /* breakpoint */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.refSpec:Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            invokeinterface com.sun.tools.example.debug.bdi.ReferenceTypeSpec.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 102
            iconst_1
            ireturn
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec breakpoint
         7: .line 106
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0    8     1         obj  Ljava/lang/Object;
            2    7     2  breakpoint  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String errorMessageFor(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // java.lang.Exception e
         0: .line 112
            aload 1 /* e */
            instanceof com.sun.tools.example.debug.bdi.AmbiguousMethodException
            ifeq 2
         1: .line 113
            new java.lang.StringBuilder
            dup
            ldc "Method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is overloaded; specify arguments"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof java.lang.NoSuchMethodException
            ifeq 4
         3: .line 118
            new java.lang.StringBuilder
            dup
            ldc "No method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.refSpec:Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         4: .line 119
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof com.sun.jdi.InvalidTypeException
            ifeq 8
         5: .line 120
            new java.lang.StringBuilder
            dup
            ldc "Breakpoints can be located only in classes. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 121
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.refSpec:Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is an interface or array"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 120
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         8: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokespecial com.sun.tools.example.debug.bdi.BreakpointSpec.errorMessageFor:(Ljava/lang/Exception;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Exception e
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0    9     1     e  Ljava/lang/Exception;
    MethodParameters:
      Name  Flags
      e     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
         0: .line 129
            new java.lang.StringBuffer
            dup
            ldc "breakpoint "
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 1 /* buffer */
        start local 1 // java.lang.StringBuffer buffer
         1: .line 130
            aload 1 /* buffer */
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.refSpec:Lcom/sun/tools/example/debug/bdi/ReferenceTypeSpec;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 131
            aload 1 /* buffer */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         3: .line 132
            aload 1 /* buffer */
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodId:Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 133
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            ifnull 15
         5: .line 134
            iconst_1
            istore 2 /* first */
        start local 2 // boolean first
         6: .line 135
            aload 1 /* buffer */
            bipush 40
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         7: .line 136
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec java.lang.StringBuffer int top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* name */
        start local 3 // java.lang.String name
         9: .line 137
            iload 2 /* first */
            ifne 11
        10: .line 138
            aload 1 /* buffer */
            bipush 44
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        11: .line 140
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec java.lang.StringBuffer int java.lang.String java.util.Iterator
      StackMap stack:
            aload 1 /* buffer */
            aload 3 /* name */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        12: .line 141
            iconst_0
            istore 2 /* first */
        end local 3 // java.lang.String name
        13: .line 136
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec java.lang.StringBuffer int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        14: .line 143
            aload 1 /* buffer */
            ldc ")"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 2 // boolean first
        15: .line 145
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec java.lang.StringBuffer
      StackMap stack:
            aload 1 /* buffer */
            ldc " ("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        16: .line 146
            aload 1 /* buffer */
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.getStatusString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        17: .line 147
            aload 1 /* buffer */
            bipush 41
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        18: .line 148
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer buffer
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            1   19     1  buffer  Ljava/lang/StringBuffer;
            6   15     2   first  Z
            9   13     3    name  Ljava/lang/String;

  private boolean isValidMethodName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // java.lang.String s
         0: .line 152
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.isJavaIdentifier:(Ljava/lang/String;)Z
            ifne 4
         1: .line 153
            aload 1 /* s */
            ldc "<init>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 154
            aload 1 /* s */
            ldc "<clinit>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 152
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.String s
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0    5     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  private boolean compareArgTypes(com.sun.jdi.Method, java.util.List<java.lang.String>);
    descriptor: (Lcom/sun/jdi/Method;Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // com.sun.jdi.Method method
        start local 2 // java.util.List nameList
         0: .line 165
            aload 1 /* method */
            invokeinterface com.sun.jdi.Method.argumentTypeNames:()Ljava/util/List;
            astore 3 /* argTypeNames */
        start local 3 // java.util.List argTypeNames
         1: .line 168
            aload 3 /* argTypeNames */
            invokeinterface java.util.List.size:()I
            aload 2 /* nameList */
            invokeinterface java.util.List.size:()I
            if_icmpeq 3
         2: .line 169
            iconst_0
            ireturn
         3: .line 173
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* argTypeNames */
            invokeinterface java.util.List.size:()I
            istore 4 /* nTypes */
        start local 4 // int nTypes
         4: .line 174
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 20
         6: .line 175
      StackMap locals: int int
      StackMap stack:
            aload 3 /* argTypeNames */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* comp1 */
        start local 6 // java.lang.String comp1
         7: .line 176
            aload 2 /* nameList */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* comp2 */
        start local 7 // java.lang.String comp2
         8: .line 177
            aload 6 /* comp1 */
            aload 7 /* comp2 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
         9: .line 185
            iload 5 /* i */
            iload 4 /* nTypes */
            iconst_1
            isub
            if_icmpne 12
        10: .line 186
            aload 1 /* method */
            invokeinterface com.sun.jdi.Method.isVarArgs:()Z
            ifeq 12
        11: .line 187
            aload 7 /* comp2 */
            ldc "..."
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 13
        12: .line 188
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        13: .line 197
      StackMap locals:
      StackMap stack:
            aload 6 /* comp1 */
            invokevirtual java.lang.String.length:()I
            istore 8 /* comp1Length */
        start local 8 // int comp1Length
        14: .line 198
            iload 8 /* comp1Length */
            iconst_1
            iadd
            aload 7 /* comp2 */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 16
        15: .line 200
            iconst_0
            ireturn
        16: .line 203
      StackMap locals: int
      StackMap stack:
            aload 6 /* comp1 */
            iconst_0
            aload 7 /* comp2 */
            iconst_0
            iload 8 /* comp1Length */
            iconst_2
            isub
            invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
            ifne 18
        17: .line 204
            iconst_0
            ireturn
        18: .line 207
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 8 // int comp1Length
        end local 7 // java.lang.String comp2
        end local 6 // java.lang.String comp1
        19: .line 174
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 5 /* i */
            iload 4 /* nTypes */
            if_icmplt 6
        end local 5 // int i
        21: .line 211
            iconst_1
            ireturn
        end local 4 // int nTypes
        end local 3 // java.util.List argTypeNames
        end local 2 // java.util.List nameList
        end local 1 // com.sun.jdi.Method method
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0   22     1        method  Lcom/sun/jdi/Method;
            0   22     2      nameList  Ljava/util/List<Ljava/lang/String;>;
            1   22     3  argTypeNames  Ljava/util/List<Ljava/lang/String;>;
            4   22     4        nTypes  I
            5   21     5             i  I
            7   19     6         comp1  Ljava/lang/String;
            8   19     7         comp2  Ljava/lang/String;
           14   19     8   comp1Length  I
    Signature: (Lcom/sun/jdi/Method;Ljava/util/List<Ljava/lang/String;>;)Z
    MethodParameters:
          Name  Flags
      method    
      nameList  

  private com.sun.jdi.VirtualMachine vm();
    descriptor: ()Lcom/sun/jdi/VirtualMachine;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
         0: .line 215
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.request:Lcom/sun/jdi/request/EventRequest;
            invokeinterface com.sun.jdi.request.EventRequest.virtualMachine:()Lcom/sun/jdi/VirtualMachine;
            areturn
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;

  private java.lang.String normalizeArgTypeName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // java.lang.String name
         0: .line 227
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: .line 228
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 3 /* typePart */
        start local 3 // java.lang.StringBuffer typePart
         2: .line 229
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 4 /* arrayPart */
        start local 4 // java.lang.StringBuffer arrayPart
         3: .line 230
            aload 1 /* name */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* name */
         4: .line 231
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 5 /* nameLength */
        start local 5 // int nameLength
         5: .line 237
            aload 1 /* name */
            ldc "..."
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            istore 6 /* isVarArgs */
        start local 6 // boolean isVarArgs
         6: .line 238
            iload 6 /* isVarArgs */
            ifeq 14
         7: .line 239
            iinc 5 /* nameLength */ -3
         8: .line 242
            goto 14
         9: .line 243
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec java.lang.String int java.lang.StringBuffer java.lang.StringBuffer int int
      StackMap stack:
            aload 1 /* name */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 7 /* c */
        start local 7 // char c
        10: .line 244
            iload 7 /* c */
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 25
            iload 7 /* c */
            bipush 91
            if_icmpne 12
        11: .line 245
            goto 25
        12: .line 247
      StackMap locals: int
      StackMap stack:
            aload 3 /* typePart */
            iload 7 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        13: .line 248
            iinc 2 /* i */ 1
        end local 7 // char c
        14: .line 242
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 5 /* nameLength */
            if_icmplt 9
        15: .line 250
            goto 25
        16: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 7 /* c */
        start local 7 // char c
        17: .line 252
            iload 7 /* c */
            bipush 91
            if_icmpeq 18
            iload 7 /* c */
            bipush 93
            if_icmpne 20
        18: .line 253
      StackMap locals: int
      StackMap stack:
            aload 4 /* arrayPart */
            iload 7 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        19: .line 254
            goto 24
      StackMap locals:
      StackMap stack:
        20: iload 7 /* c */
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 24
        21: .line 255
            new java.lang.IllegalArgumentException
            dup
        22: .line 256
            ldc "Invalid argument type name"
        23: .line 255
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 259
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
        end local 7 // char c
        25: .line 250
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 5 /* nameLength */
            if_icmplt 16
        26: .line 262
            aload 3 /* typePart */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            astore 1 /* name */
        27: .line 269
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 28
            aload 1 /* name */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 33
        28: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.example.debug.bdi.MethodBreakpointSpec.specs:Lcom/sun/tools/example/debug/bdi/EventRequestSpecList;
            getfield com.sun.tools.example.debug.bdi.EventRequestSpecList.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
            aload 1 /* name */
            invokevirtual com.sun.tools.example.debug.bdi.ExecutionManager.findClassesMatchingPattern:(Ljava/lang/String;)Ljava/util/List;
            astore 7 /* refs */
        start local 7 // java.util.List refs
        29: .line 272
            aload 7 /* refs */
            invokeinterface java.util.List.size:()I
            ifle 33
        30: .line 273
            aload 7 /* refs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.jdi.ReferenceType
            invokeinterface com.sun.jdi.ReferenceType.name:()Ljava/lang/String;
            astore 1 /* name */
        end local 7 // java.util.List refs
        31: .line 275
            goto 33
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        32: pop
        33: .line 279
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* arrayPart */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        34: .line 280
            iload 6 /* isVarArgs */
            ifeq 36
        35: .line 281
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        36: .line 283
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 6 // boolean isVarArgs
        end local 5 // int nameLength
        end local 4 // java.lang.StringBuffer arrayPart
        end local 3 // java.lang.StringBuffer typePart
        end local 2 // int i
        end local 1 // java.lang.String name
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   37     0        this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0   37     1        name  Ljava/lang/String;
            1   37     2           i  I
            2   37     3    typePart  Ljava/lang/StringBuffer;
            3   37     4   arrayPart  Ljava/lang/StringBuffer;
            5   37     5  nameLength  I
            6   37     6   isVarArgs  Z
           10   14     7           c  C
           17   25     7           c  C
           29   31     7        refs  Ljava/util/List<*>;
      Exception table:
        from    to  target  type
          28    31      32  Class java.lang.IllegalArgumentException
    Exceptions:
      throws com.sun.tools.example.debug.bdi.NoSessionException
    MethodParameters:
      Name  Flags
      name  

  private com.sun.jdi.Method findMatchingMethod(com.sun.jdi.ClassType);
    descriptor: (Lcom/sun/jdi/ClassType;)Lcom/sun/jdi/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
        start local 1 // com.sun.jdi.ClassType clazz
         0: .line 298
            aconst_null
            astore 2 /* argTypeNames */
        start local 2 // java.util.List argTypeNames
         1: .line 299
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:()Ljava/util/List;
            ifnull 8
         2: .line 300
            new java.util.ArrayList
            dup
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* argTypeNames */
         3: .line 301
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodArgs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec com.sun.jdi.ClassType java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* name */
        start local 3 // java.lang.String name
         5: .line 302
            aload 0 /* this */
            aload 3 /* name */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.normalizeArgTypeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
         6: .line 303
            aload 2 /* argTypeNames */
            aload 3 /* name */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String name
         7: .line 301
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 308
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec com.sun.jdi.ClassType java.util.List
      StackMap stack:
            aconst_null
            astore 3 /* firstMatch */
        start local 3 // com.sun.jdi.Method firstMatch
         9: .line 309
            aconst_null
            astore 4 /* exactMatch */
        start local 4 // com.sun.jdi.Method exactMatch
        10: .line 310
            iconst_0
            istore 5 /* matchCount */
        start local 5 // int matchCount
        11: .line 311
            aload 1 /* clazz */
            invokeinterface com.sun.jdi.ClassType.methods:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 21
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec com.sun.jdi.ClassType java.util.List com.sun.jdi.Method com.sun.jdi.Method int top java.util.Iterator
      StackMap stack:
        12: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.jdi.Method
            astore 6 /* candidate */
        start local 6 // com.sun.jdi.Method candidate
        13: .line 312
            aload 6 /* candidate */
            invokeinterface com.sun.jdi.Method.name:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        14: .line 313
            iinc 5 /* matchCount */ 1
        15: .line 316
            iload 5 /* matchCount */
            iconst_1
            if_icmpne 17
        16: .line 317
            aload 6 /* candidate */
            astore 3 /* firstMatch */
        17: .line 321
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec com.sun.jdi.ClassType java.util.List com.sun.jdi.Method com.sun.jdi.Method int com.sun.jdi.Method java.util.Iterator
      StackMap stack:
            aload 2 /* argTypeNames */
            ifnull 21
        18: .line 322
            aload 0 /* this */
            aload 6 /* candidate */
            aload 2 /* argTypeNames */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.compareArgTypes:(Lcom/sun/jdi/Method;Ljava/util/List;)Z
            ifeq 21
        19: .line 323
            aload 6 /* candidate */
            astore 4 /* exactMatch */
        20: .line 324
            goto 22
        end local 6 // com.sun.jdi.Method candidate
        21: .line 311
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec com.sun.jdi.ClassType java.util.List com.sun.jdi.Method com.sun.jdi.Method int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        22: .line 330
      StackMap locals: com.sun.tools.example.debug.bdi.MethodBreakpointSpec com.sun.jdi.ClassType java.util.List com.sun.jdi.Method com.sun.jdi.Method int
      StackMap stack:
            aconst_null
            astore 6 /* method */
        start local 6 // com.sun.jdi.Method method
        23: .line 331
            aload 4 /* exactMatch */
            ifnull 26
        24: .line 333
            aload 4 /* exactMatch */
            astore 6 /* method */
        25: .line 334
            goto 32
      StackMap locals: com.sun.jdi.Method
      StackMap stack:
        26: aload 2 /* argTypeNames */
            ifnonnull 31
            iload 5 /* matchCount */
            ifle 31
        27: .line 336
            iload 5 /* matchCount */
            iconst_1
            if_icmpne 30
        28: .line 337
            aload 3 /* firstMatch */
            astore 6 /* method */
        29: .line 338
            goto 32
        30: .line 339
      StackMap locals:
      StackMap stack:
            new com.sun.tools.example.debug.bdi.AmbiguousMethodException
            dup
            invokespecial com.sun.tools.example.debug.bdi.AmbiguousMethodException.<init>:()V
            athrow
        31: .line 342
      StackMap locals:
      StackMap stack:
            new java.lang.NoSuchMethodException
            dup
            aload 0 /* this */
            invokevirtual com.sun.tools.example.debug.bdi.MethodBreakpointSpec.methodName:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 344
      StackMap locals:
      StackMap stack:
            aload 6 /* method */
            areturn
        end local 6 // com.sun.jdi.Method method
        end local 5 // int matchCount
        end local 4 // com.sun.jdi.Method exactMatch
        end local 3 // com.sun.jdi.Method firstMatch
        end local 2 // java.util.List argTypeNames
        end local 1 // com.sun.jdi.ClassType clazz
        end local 0 // com.sun.tools.example.debug.bdi.MethodBreakpointSpec this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   33     0          this  Lcom/sun/tools/example/debug/bdi/MethodBreakpointSpec;
            0   33     1         clazz  Lcom/sun/jdi/ClassType;
            1   33     2  argTypeNames  Ljava/util/List<Ljava/lang/String;>;
            5    7     3          name  Ljava/lang/String;
            9   33     3    firstMatch  Lcom/sun/jdi/Method;
           10   33     4    exactMatch  Lcom/sun/jdi/Method;
           11   33     5    matchCount  I
           13   21     6     candidate  Lcom/sun/jdi/Method;
           23   33     6        method  Lcom/sun/jdi/Method;
    Exceptions:
      throws com.sun.tools.example.debug.bdi.AmbiguousMethodException, java.lang.NoSuchMethodException, com.sun.tools.example.debug.bdi.NoSessionException
    MethodParameters:
       Name  Flags
      clazz  
}
SourceFile: "MethodBreakpointSpec.java"