public abstract class jdk.jshell.execution.JdiExecutionControl extends jdk.jshell.execution.StreamingExecutionControl implements jdk.jshell.spi.ExecutionControl
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.jshell.execution.JdiExecutionControl
  super_class: jdk.jshell.execution.StreamingExecutionControl
{
  private final java.util.Map<java.lang.String, com.sun.jdi.ReferenceType> toReferenceType;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/sun/jdi/ReferenceType;>;

  protected void <init>(java.io.ObjectOutput, java.io.ObjectInput);
    descriptor: (Ljava/io/ObjectOutput;Ljava/io/ObjectInput;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.jshell.execution.JdiExecutionControl this
        start local 1 // java.io.ObjectOutput out
        start local 2 // java.io.ObjectInput in
         0: .line 57
            aload 0 /* this */
            aload 1 /* out */
            aload 2 /* in */
            invokespecial jdk.jshell.execution.StreamingExecutionControl.<init>:(Ljava/io/ObjectOutput;Ljava/io/ObjectInput;)V
         1: .line 49
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jshell.execution.JdiExecutionControl.toReferenceType:Ljava/util/Map;
         2: .line 58
            return
        end local 2 // java.io.ObjectInput in
        end local 1 // java.io.ObjectOutput out
        end local 0 // jdk.jshell.execution.JdiExecutionControl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jshell/execution/JdiExecutionControl;
            0    3     1   out  Ljava/io/ObjectOutput;
            0    3     2    in  Ljava/io/ObjectInput;
    MethodParameters:
      Name  Flags
      out   
      in    

  protected abstract com.sun.jdi.VirtualMachine vm();
    descriptor: ()Lcom/sun/jdi/VirtualMachine;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws jdk.jshell.spi.ExecutionControl$EngineTerminationException

  public void redefine(jdk.jshell.spi.ExecutionControl$ClassBytecodes[]);
    descriptor: ([Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.jshell.execution.JdiExecutionControl this
        start local 1 // jdk.jshell.spi.ExecutionControl$ClassBytecodes[] cbcs
         0: .line 84
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.JdiExecutionControl.vm:()Lcom/sun/jdi/VirtualMachine;
            astore 2 /* vm */
        start local 2 // com.sun.jdi.VirtualMachine vm
         1: .line 85
            aload 1 /* cbcs */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 87
            aload 0 /* this */
            aload 2 /* vm */
            invokedynamic apply(Ljdk/jshell/execution/JdiExecutionControl;Lcom/sun/jdi/VirtualMachine;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/jshell/execution/JdiExecutionControl.lambda$0(Lcom/sun/jdi/VirtualMachine;Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)Lcom/sun/jdi/ReferenceType; (7)
                  (Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)Lcom/sun/jdi/ReferenceType;
         3: .line 88
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/jshell/execution/JdiExecutionControl.lambda$1(Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)[B (6)
                  (Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)[B
         4: .line 86
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
         5: .line 85
            astore 3 /* rmp */
        start local 3 // java.util.Map rmp
         6: .line 90
            aload 0 /* this */
            invokevirtual jdk.jshell.execution.JdiExecutionControl.vm:()Lcom/sun/jdi/VirtualMachine;
            aload 3 /* rmp */
            invokeinterface com.sun.jdi.VirtualMachine.redefineClasses:(Ljava/util/Map;)V
        end local 3 // java.util.Map rmp
        end local 2 // com.sun.jdi.VirtualMachine vm
         7: .line 91
            goto 12
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$EngineTerminationException
         8: astore 2 /* ex */
        start local 2 // jdk.jshell.spi.ExecutionControl$EngineTerminationException ex
         9: .line 92
            aload 2 /* ex */
            athrow
        end local 2 // jdk.jshell.spi.ExecutionControl$EngineTerminationException ex
        10: .line 93
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
        11: .line 94
            new jdk.jshell.spi.ExecutionControl$ClassInstallException
            dup
            new java.lang.StringBuilder
            dup
            ldc "redefine: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* ex */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* cbcs */
            arraylength
            newarray 4
            invokespecial jdk.jshell.spi.ExecutionControl$ClassInstallException.<init>:(Ljava/lang/String;[Z)V
            athrow
        end local 2 // java.lang.Exception ex
        12: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cbcs */
            invokespecial jdk.jshell.execution.StreamingExecutionControl.redefine:([Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)V
        13: .line 99
            goto 15
      StackMap locals:
      StackMap stack: jdk.jshell.spi.ExecutionControl$NotImplementedException
        14: pop
        15: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.jshell.spi.ExecutionControl$ClassBytecodes[] cbcs
        end local 0 // jdk.jshell.execution.JdiExecutionControl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljdk/jshell/execution/JdiExecutionControl;
            0   16     1  cbcs  [Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;
            1    7     2    vm  Lcom/sun/jdi/VirtualMachine;
            6    7     3   rmp  Ljava/util/Map<Lcom/sun/jdi/ReferenceType;[B>;
            9   10     2    ex  Ljdk/jshell/spi/ExecutionControl$EngineTerminationException;
           11   12     2    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     7       8  Class jdk.jshell.spi.ExecutionControl$EngineTerminationException
           0     7      10  Class java.lang.Exception
          12    13      14  Class jdk.jshell.spi.ExecutionControl$NotImplementedException
    Exceptions:
      throws jdk.jshell.spi.ExecutionControl$ClassInstallException, jdk.jshell.spi.ExecutionControl$EngineTerminationException
    MethodParameters:
      Name  Flags
      cbcs  

  protected com.sun.jdi.ReferenceType referenceType(com.sun.jdi.VirtualMachine, java.lang.String);
    descriptor: (Lcom/sun/jdi/VirtualMachine;Ljava/lang/String;)Lcom/sun/jdi/ReferenceType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.jshell.execution.JdiExecutionControl this
        start local 1 // com.sun.jdi.VirtualMachine vm
        start local 2 // java.lang.String name
         0: .line 114
            aload 0 /* this */
            getfield jdk.jshell.execution.JdiExecutionControl.toReferenceType:Ljava/util/Map;
            aload 2 /* name */
            aload 1 /* vm */
            invokedynamic apply(Lcom/sun/jdi/VirtualMachine;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/jshell/execution/JdiExecutionControl.lambda$2(Lcom/sun/jdi/VirtualMachine;Ljava/lang/String;)Lcom/sun/jdi/ReferenceType; (6)
                  (Ljava/lang/String;)Lcom/sun/jdi/ReferenceType;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.sun.jdi.ReferenceType
            areturn
        end local 2 // java.lang.String name
        end local 1 // com.sun.jdi.VirtualMachine vm
        end local 0 // jdk.jshell.execution.JdiExecutionControl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/execution/JdiExecutionControl;
            0    1     1    vm  Lcom/sun/jdi/VirtualMachine;
            0    1     2  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      vm    
      name  

  private static com.sun.jdi.ReferenceType nameToRef(com.sun.jdi.VirtualMachine, java.lang.String);
    descriptor: (Lcom/sun/jdi/VirtualMachine;Ljava/lang/String;)Lcom/sun/jdi/ReferenceType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.jdi.VirtualMachine vm
        start local 1 // java.lang.String name
         0: .line 118
            aload 0 /* vm */
            aload 1 /* name */
            invokeinterface com.sun.jdi.VirtualMachine.classesByName:(Ljava/lang/String;)Ljava/util/List;
            astore 2 /* rtl */
        start local 2 // java.util.List rtl
         1: .line 119
            aload 2 /* rtl */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpeq 3
         2: .line 120
            aconst_null
            areturn
         3: .line 122
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* rtl */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.jdi.ReferenceType
            areturn
        end local 2 // java.util.List rtl
        end local 1 // java.lang.String name
        end local 0 // com.sun.jdi.VirtualMachine vm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    vm  Lcom/sun/jdi/VirtualMachine;
            0    4     1  name  Ljava/lang/String;
            1    4     2   rtl  Ljava/util/List<Lcom/sun/jdi/ReferenceType;>;
    MethodParameters:
      Name  Flags
      vm    
      name  

  private com.sun.jdi.ReferenceType lambda$0(com.sun.jdi.VirtualMachine, jdk.jshell.spi.ExecutionControl$ClassBytecodes);
    descriptor: (Lcom/sun/jdi/VirtualMachine;Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)Lcom/sun/jdi/ReferenceType;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.jshell.execution.JdiExecutionControl this
        start local 2 // jdk.jshell.spi.ExecutionControl$ClassBytecodes cbc
         0: .line 87
            aload 0 /* this */
            aload 1
            aload 2 /* cbc */
            invokevirtual jdk.jshell.spi.ExecutionControl$ClassBytecodes.name:()Ljava/lang/String;
            invokevirtual jdk.jshell.execution.JdiExecutionControl.referenceType:(Lcom/sun/jdi/VirtualMachine;Ljava/lang/String;)Lcom/sun/jdi/ReferenceType;
            areturn
        end local 2 // jdk.jshell.spi.ExecutionControl$ClassBytecodes cbc
        end local 0 // jdk.jshell.execution.JdiExecutionControl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/execution/JdiExecutionControl;
            0    1     2   cbc  Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;

  private static byte[] lambda$1(jdk.jshell.spi.ExecutionControl$ClassBytecodes);
    descriptor: (Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;)[B
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$ClassBytecodes cbc
         0: .line 88
            aload 0 /* cbc */
            invokevirtual jdk.jshell.spi.ExecutionControl$ClassBytecodes.bytecodes:()[B
            areturn
        end local 0 // jdk.jshell.spi.ExecutionControl$ClassBytecodes cbc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cbc  Ljdk/jshell/spi/ExecutionControl$ClassBytecodes;

  private static com.sun.jdi.ReferenceType lambda$2(com.sun.jdi.VirtualMachine, java.lang.String);
    descriptor: (Lcom/sun/jdi/VirtualMachine;Ljava/lang/String;)Lcom/sun/jdi/ReferenceType;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String n
         0: .line 114
            aload 0
            aload 1 /* n */
            invokestatic jdk.jshell.execution.JdiExecutionControl.nameToRef:(Lcom/sun/jdi/VirtualMachine;Ljava/lang/String;)Lcom/sun/jdi/ReferenceType;
            areturn
        end local 1 // java.lang.String n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     n  Ljava/lang/String;
}
SourceFile: "JdiExecutionControl.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final ClassBytecodes = jdk.jshell.spi.ExecutionControl$ClassBytecodes of jdk.jshell.spi.ExecutionControl
  public ClassInstallException = jdk.jshell.spi.ExecutionControl$ClassInstallException of jdk.jshell.spi.ExecutionControl
  public EngineTerminationException = jdk.jshell.spi.ExecutionControl$EngineTerminationException of jdk.jshell.spi.ExecutionControl
  public NotImplementedException = jdk.jshell.spi.ExecutionControl$NotImplementedException of jdk.jshell.spi.ExecutionControl