Interface IJavaThread

All Superinterfaces:
IAdaptable, IDebugElement, IFilteredStep, IStep, ISuspendResume, ITerminate, IThread

public interface IJavaThread extends IThread, IFilteredStep
A thread in a Java virtual machine.
See Also:
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

  • Method Details

    • isSystemThread

      boolean isSystemThread() throws DebugException
      Returns whether this thread is a system thread.
      Returns:
      whether this thread is a system thread
      Throws:
      DebugException - if this method fails. Reasons include:
      • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
    • isOutOfSynch

      boolean isOutOfSynch() throws DebugException
      Returns whether any of the stack frames associated with this thread are running code in the VM that is out of synch with the code in the workspace.
      Returns:
      whether this thread is out of synch with the workspace.
      Throws:
      DebugException - if this method fails. Reasons include:
      • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
      Since:
      2.0
    • mayBeOutOfSynch

      boolean mayBeOutOfSynch() throws DebugException
      Returns whether this thread may be running code in the VM that is out of synch with the code in the workspace.
      Returns:
      whether this thread may be out of synch with the workspace.
      Throws:
      DebugException - if this method fails. Reasons include:
      • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
      Since:
      2.0
    • isPerformingEvaluation

      boolean isPerformingEvaluation()
      Returns whether this thread is currently performing an evaluation.
      Returns:
      whether this thread is currently performing an evaluation
      Since:
      2.0
    • getThreadGroupName

      String getThreadGroupName() throws DebugException
      Returns the name of the thread group this thread belongs to, or null if none.
      Returns:
      thread group name, or null if none
      Throws:
      DebugException - if this method fails. Reasons include:
      • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
    • findVariable

      IJavaVariable findVariable(String variableName) throws DebugException
      Returns a variable with the given name, or null if unable to resolve a variable with the name, or if this thread is not currently suspended.

      Variable lookup works only when a thread is suspended. Lookup is performed in all stack frames, in a top-down order, returning the first successful match, or null if no match is found.

      Parameters:
      variableName - the name of the variable to search for
      Returns:
      a variable, or null if none
      Throws:
      DebugException - if this method fails. Reasons include:
      • Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
    • runEvaluation

      void runEvaluation(IEvaluationRunnable evaluation, IProgressMonitor monitor, int evaluationDetail, boolean hitBreakpoints) throws DebugException
      Invokes the given evaluation with the specified progress monitor. This thread fires a resume event when the evaluation begins, and a suspend event when the evaluation completes or throws an exception. The events are given a detail as specified by evaluationDetail (one of DebugEvent.EVALUATION or DebugEvent.EVALUATION_IMPLICIT).

      Since 3.5, the org.eclipse.jdt.debug.breakpointListeners extension point supports evaluation execution during a listener call back. Suspend and resume events are not fired during listener call backs. Unspecified model specific events are fired.

      Parameters:
      evaluation - the evaluation to perform
      monitor - progress monitor (may be null
      evaluationDetail - one of DebugEvent.EVALUATION or DebugEvent.EVALUATION_IMPLICIT
      hitBreakpoints - whether or not breakpoints should be honored in this thread during the evaluation. If false, breakpoints hit in this thread during the evaluation will be ignored.
      Throws:
      DebugException - if an exception occurs performing the evaluation
      Since:
      2.0
    • queueRunnable

      void queueRunnable(Runnable runnable)
      Queues the given runnable with the list of runnables associated with this thread. Runnables are executed asynchronously in a separate thread. This method should be used to execute any code which performs an operation like a method invocation.
      Parameters:
      runnable - the runnable to execute.
      Since:
      2.1
    • terminateEvaluation

      void terminateEvaluation() throws DebugException
      Attempts to terminate the currently executing IEvaluationRunnable in this thread, if any. Evaluations may be composed of a series of instructions. Terminating an evaluation means stopping the evaluation after the current instruction completes. A single instruction (such as a method invocation) cannot be interrupted.
      Throws:
      DebugException - if an exception occurs while terminating the evaluation.
      Since:
      2.1
    • canTerminateEvaluation

      boolean canTerminateEvaluation()
      Returns whether the currently executing IEvaluationRunnable supports termination. An IEvaluationRunnable supports termination if it implements ITerminate
      Returns:
      whether the current evaluation supports termination
      Since:
      2.1
    • getContendedMonitor

      IJavaObject getContendedMonitor() throws DebugException
      Returns a Java object for the monitor for which this thread is currently waiting or null.
      Returns:
      IJavaObject the contended monitor object or null if this thread is not waiting on a monitor.
      Throws:
      DebugException - if an exception occurs while retrieving the contended monitor.
      Since:
      2.1
    • getOwnedMonitors

      IJavaObject[] getOwnedMonitors() throws DebugException
      Returns the monitors owned by this thread or null if this thread owns no monitors.
      Returns:
      the owned monitors
      Throws:
      DebugException - if an exception occurs while retrieving the owned monitors of this thread.
      Since:
      2.1
    • hasOwnedMonitors

      boolean hasOwnedMonitors() throws DebugException
      Returns whether this threads owns at least one monitor.
      Returns:
      boolean whether this thread owns a monitor
      Throws:
      DebugException - if an exception occurs determining if there are owned monitors.
      Since:
      2.1
    • stop

      void stop(IJavaObject exception) throws DebugException
      Request to stops this thread with the given exception.
      The result will be the same as calling java.lang.Thread#stop(java.lang.Throwable).
      If the thread is suspended when the method is called, the thread must be resumed to complete the action.
      exception must represent an exception.
      Parameters:
      exception - the exception to throw.
      Throws:
      DebugException - if the request fails
      Since:
      3.0
      See Also:
    • getThreadGroup

      IJavaThreadGroup getThreadGroup() throws DebugException
      Returns the thread group this thread belongs to or null if none.
      Returns:
      thread group or null
      Throws:
      DebugException - if the thread group cannot be computed
      Since:
      3.2
    • isDaemon

      boolean isDaemon() throws DebugException
      Returns whether this thread is a daemon thread.
      Returns:
      whether this thread is a daemon thread
      Throws:
      DebugException - if an exception occurs while determining status
      Since:
      3.3
    • getFrameCount

      int getFrameCount() throws DebugException
      Returns the number of frames in this thread.
      Returns:
      number of stack frames
      Throws:
      DebugException - if an exception occurs while retrieving the count
      Since:
      3.3
    • getThreadObject

      IJavaObject getThreadObject() throws DebugException
      Returns the object reference associated with this thread.
      Returns:
      thread object reference
      Throws:
      DebugException - if unable to retrieve an object reference
      Since:
      3.6