Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse JDT Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jdt.debug.core
Interface IJavaThread

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

public interface IJavaThread
extends IThread, IFilteredStep

A thread in a Java virtual machine.

Clients are not intended to implement this interface.

See Also:
  `IThread`

Field Summary
`static int` | `ERR_INCOMPATIBLE_THREAD_STATE` Status code indicating a request to perform a message send failed because a thread was not suspended by a step or breakpoint event.
`static int` | `ERR_NESTED_METHOD_INVOCATION` Status code indicating a request to perform a message send failed because a thread was already performing a message send.
`static int` | `ERR_THREAD_NOT_SUSPENDED` Status code indicating a request failed because a thread was not suspended.

Method Summary
`boolean` | `canTerminateEvaluation()` Returns whether the currently executing `IEvaluationRunnable` supports termination.
`IJavaVariable` | `findVariable(String variableName)` 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.
`IJavaObject` | `getContendedMonitor()` Returns a Java object for the monitor for which this thread is currently waiting or `null`.
`IJavaObject[]` | `getOwnedMonitors()` Returns the monitors owned by this thread or `null` if this thread owns no monitors.
`String` | `getThreadGroupName()` Returns the name of the thread group this thread belongs to, or `null` if none.
`boolean` | `hasOwnedMonitors()` Returns whether this threads owns at least one monitor.
`boolean` | `isOutOfSynch()` 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.
`boolean` | `isPerformingEvaluation()` Returns whether this thread is currently performing an evaluation.
`boolean` | `isSystemThread()` Returns whether this thread is a system thread.
`boolean` | `mayBeOutOfSynch()` Returns whether this thread may be running code in the VM that is out of synch with the code in the workspace.
`void` | `queueRunnable(Runnable runnable)` Queues the given runnable with the list of runnables associated with this thread.
`void` | `runEvaluation(IEvaluationRunnable evaluation, IProgressMonitor monitor, int evaluationDetail, boolean hitBreakpoints)` Invokes the given evaluation with the specfied progress monitor.
`void` | `stop(IJavaObject exception)` Request to stops this thread with the given exception.
`void` | `terminateEvaluation()` Attempts to terminate the currently executing `IEvaluationRunnable` in this thread, if any.

Methods inherited from interface org.eclipse.debug.core.model.IThread
`getBreakpoints, getName, getPriority, getStackFrames, getTopStackFrame, hasStackFrames`

Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
`getDebugTarget, getLaunch, getModelIdentifier`

Methods inherited from interface org.eclipse.core.runtime.IAdaptable
`getAdapter`

Methods inherited from interface org.eclipse.debug.core.model.ISuspendResume
`canResume, canSuspend, isSuspended, resume, suspend`

Methods inherited from interface org.eclipse.debug.core.model.IStep
`canStepInto, canStepOver, canStepReturn, isStepping, stepInto, stepOver, stepReturn`

Methods inherited from interface org.eclipse.debug.core.model.ITerminate
`canTerminate, isTerminated, terminate`

Methods inherited from interface org.eclipse.debug.core.model.IFilteredStep
`canStepWithFilters, stepWithFilters`

Field Detail

### ERR_THREAD_NOT_SUSPENDED

    public static final int ERR_THREAD_NOT_SUSPENDED

  Status code indicating a request failed because a thread was not suspended.

  See Also:
    Constant Field Values

### ERR_NESTED_METHOD_INVOCATION

    public static final int ERR_NESTED_METHOD_INVOCATION

  Status code indicating a request to perform a message send failed because a thread was already performing a message send.

  See Also:
    `IJavaObject.sendMessage(String, String, IJavaValue[], IJavaThread, boolean)`, `IJavaClassType.sendMessage(String, String, IJavaValue[], IJavaThread)`, `IJavaClassType.newInstance(String, IJavaValue[], IJavaThread)`, Constant Field Values

### ERR_INCOMPATIBLE_THREAD_STATE

    public static final int ERR_INCOMPATIBLE_THREAD_STATE

  Status code indicating a request to perform a message send failed because a thread was not suspended by a step or breakpoint event. When a thread is suspended explicitly via the `suspend()` method, it is not able to perform method invocations (this is a JDI limitation).

  See Also:
    `IJavaObject.sendMessage(String, String, IJavaValue[], IJavaThread, boolean)`, `IJavaClassType.sendMessage(String, String, IJavaValue[], IJavaThread)`, `IJavaClassType.newInstance(String, IJavaValue[], IJavaThread)`, Constant Field Values

Method Detail

### isSystemThread

    public 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

    public 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

    public 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

    public boolean isPerformingEvaluation()

  Returns whether this thread is currently performing an evaluation.

  Returns:
    whether this thread is currently performing an evaluation
  Since:
    2.0

### getThreadGroupName

    public 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

    public 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

    public void runEvaluation(IEvaluationRunnable evaluation,
                              IProgressMonitor monitor,
                              int evaluationDetail,
                              boolean hitBreakpoints)
                       throws DebugException

  Invokes the given evaluation with the specfied 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`).

  Parameters:
    `evaluation` - the evalation 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

    public void queueRunnable(Runnable runnable)

  Queues the given runnable with the list of runnables associated with this thread. Runnables are executed asyncronously in a seperate 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

    public 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

    public 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

    public 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

    public 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

    public 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

    public 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`
  Since:
    3.0
  See Also:
    `Thread.stop(java.lang.Throwable)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse JDT Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) IBM Corp. and others 2000, 2004. All Rights Reserved.