java.lang.Object
jdk.jshell.execution.StreamingExecutionControl
jdk.jshell.execution.JdiExecutionControl
- All Implemented Interfaces:
- AutoCloseable,- ExecutionControl
- Direct Known Subclasses:
- JdiDefaultExecutionControl
public abstract class JdiExecutionControl
extends StreamingExecutionControl
implements ExecutionControl
Abstract JDI implementation of 
ExecutionControl.- Since:
- 9
- 
Nested Class SummaryNested classes/interfaces declared in interface jdk.jshell.spi.ExecutionControlExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedJdiExecutionControl(ObjectOutput out, ObjectInput in) Create an instance.
- 
Method SummaryModifier and TypeMethodDescriptionvoidRedefine the specified classes.protected ReferenceTypereferenceType(VirtualMachine vm, String name) Returns the JDIReferenceTypecorresponding to the specified class name.protected abstract VirtualMachinevm()Returns the JDIVirtualMachineinstance.Methods declared in class jdk.jshell.execution.StreamingExecutionControladdToClasspath, close, extensionCommand, invoke, load, stop, varValueMethods declared in class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface jdk.jshell.spi.ExecutionControladdToClasspath, close, extensionCommand, invoke, load, stop, varValue
- 
Constructor Details- 
JdiExecutionControlCreate an instance.- Parameters:
- out- the output from the remote agent
- in- the input to the remote agent
 
 
- 
- 
Method Details- 
vmReturns the JDIVirtualMachineinstance.- Returns:
- the virtual machine
- Throws:
- ExecutionControl.EngineTerminationException- if the VM is dead/disconnected
 
- 
redefinepublic void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException Redefine the specified classes. Where 'redefine' is, as in JDI and JVMTI, an in-place replacement of the classes (preserving class identity) -- that is, existing references to the class do not need to be recompiled. This implementation uses JDIVirtualMachine.redefineClasses(java.util.Map). It will be unsuccessful if the signature of the class has changed (see the JDI spec). The JShell-core is designed to adapt to unsuccessful redefine.- Specified by:
- redefinein interface- ExecutionControl
- Parameters:
- cbcs- the class name and bytecodes to redefine
- Throws:
- ExecutionControl.ClassInstallException- exception occurred redefining the classes, some or all were not redefined
- ExecutionControl.EngineTerminationException- the execution engine has terminated
 
- 
referenceTypeReturns the JDIReferenceTypecorresponding to the specified class name.- Parameters:
- vm- the current JDI- VirtualMachineas returned by- vm()
- name- the class name to look-up
- Returns:
- the corresponding ReferenceType
 
 
-