java.lang.Object
jdk.jshell.execution.DirectExecutionControl
- All Implemented Interfaces:
- AutoCloseable,- ExecutionControl
- Direct Known Subclasses:
- LocalExecutionControl,- RemoteExecutionControl
public class DirectExecutionControl extends Object implements ExecutionControl
An 
ExecutionControl implementation that runs in the current process.
 May be used directly, or over a channel with
 Util.forwardExecutionControl(ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput).- 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 SummaryConstructors Constructor Description DirectExecutionControl()Create an instance using the default class loading.DirectExecutionControl(LoaderDelegate loaderDelegate)Creates an instance, delegating loader operations to the specified delegate.
- 
Method SummaryModifier and Type Method Description protected voidclassesRedefined(ExecutionControl.ClassBytecodes[] cbcs)Notify that classes have been redefined.protected voidclientCodeEnter()Marks entry into user code.protected voidclientCodeLeave()Marks departure from user code.protected Class<?>findClass(String name)Finds the class with the specified binary name.protected Stringinvoke(Method doitMethod)Invoke the specified "doit-method", a static method with no parameters.voidstop()Interrupts a running invoke.protected StringthrowConvertedInvocationException(Throwable cause)Converts incoming exceptions in user code into instances of subtypes ofExecutionControl.ExecutionControlExceptionand throws the converted exception.protected StringthrowConvertedOtherException(Throwable ex)Converts incoming exceptions in agent code into instances of subtypes ofExecutionControl.ExecutionControlExceptionand throws the converted exception.protected static StringvalueString(Object value)Converts theObjectvalue fromExecutionControl.invoke(String, String)orExecutionControl.varValue(String, String)toString.Methods 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, redefine, varValue
- 
Constructor Details- 
DirectExecutionControlCreates an instance, delegating loader operations to the specified delegate.- Parameters:
- loaderDelegate- the delegate to handle loading classes
 
- 
DirectExecutionControlpublic DirectExecutionControl()Create an instance using the default class loading.
 
- 
- 
Method Details- 
classesRedefinedprotected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationExceptionNotify that classes have been redefined.- Parameters:
- cbcs- the class name and bytecodes to redefine
- Throws:
- ExecutionControl.NotImplementedException- if not implemented
- ExecutionControl.EngineTerminationException- the execution engine has terminated
 
- 
stoppublic void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalExceptionInterrupts a running invoke.Not supported. - Specified by:
- stopin interface- ExecutionControl
- Throws:
- ExecutionControl.EngineTerminationException- the execution engine has terminated
- ExecutionControl.InternalException- an internal problem occurred
 
- 
findClassFinds the class with the specified binary name.- Parameters:
- name- the binary name of the class
- Returns:
- the Class Object
- Throws:
- ClassNotFoundException- if the class could not be found
 
- 
invokeInvoke the specified "doit-method", a static method with no parameters. TheExecutionControl.invoke(java.lang.String, java.lang.String)in this class will call this to invoke.- Parameters:
- doitMethod- the Method to invoke
- Returns:
- the value or null
- Throws:
- Exception- any exceptions thrown by- Method.invoke(Object, Object...)or any- ExecutionControl.ExecutionControlExceptionto pass-through.
 
- 
valueStringConverts theObjectvalue fromExecutionControl.invoke(String, String)orExecutionControl.varValue(String, String)toString.- Parameters:
- value- the value to convert
- Returns:
- the Stringrepresentation
 
- 
throwConvertedInvocationExceptionprotected String throwConvertedInvocationException(Throwable cause) throws ExecutionControl.RunException, ExecutionControl.InternalExceptionConverts incoming exceptions in user code into instances of subtypes ofExecutionControl.ExecutionControlExceptionand throws the converted exception.- Parameters:
- cause- the exception to convert
- Returns:
- never returns as it always throws
- Throws:
- ExecutionControl.RunException- for normal exception occurrences
- ExecutionControl.InternalException- for internal problems
 
- 
throwConvertedOtherExceptionprotected String throwConvertedOtherException(Throwable ex) throws ExecutionControl.RunException, ExecutionControl.InternalExceptionConverts incoming exceptions in agent code into instances of subtypes ofExecutionControl.ExecutionControlExceptionand throws the converted exception.- Parameters:
- ex- the exception to convert
- Returns:
- never returns as it always throws
- Throws:
- ExecutionControl.RunException- for normal exception occurrences
- ExecutionControl.InternalException- for internal problems
 
- 
clientCodeEnterMarks entry into user code.- Throws:
- ExecutionControl.InternalException- in unexpected failure cases
 
- 
clientCodeLeaveMarks departure from user code.- Throws:
- ExecutionControl.InternalException- in unexpected failure cases
 
 
-