com.ibm.dtfj.java
Interface JavaThread


public interface JavaThread

Represents a Java thread

Author:
pburka
See Also:
JavaRuntime.getThreads()

Field Summary
static int STATE_ALIVE
          The thread is alive
static int STATE_BLOCKED_ON_MONITOR_ENTER
          The thread is waiting to enter an object monitor
static int STATE_IN_NATIVE
          The thread is in native code
static int STATE_IN_OBJECT_WAIT
          The thread is in Object.wait
static int STATE_INTERRUPTED
          The thread has a pending interrupt
static int STATE_PARKED
          The thread has been deliberately removed from scheduling
static int STATE_RUNNABLE
          The thread can be run although may not be actually running
static int STATE_SLEEPING
          The thread is in the Thread.sleep method
static int STATE_SUSPENDED
          The thread has been suspended by Thread.suspend
static int STATE_TERMINATED
          The thread has terminated
static int STATE_VENDOR_1
          The thread is in a vendor specific state
static int STATE_VENDOR_2
          The thread is in a vendor specific state
static int STATE_VENDOR_3
          The thread is in a vendor specific state
static int STATE_WAITING
          The thread is in a waiting state in native code
static int STATE_WAITING_INDEFINITELY
          The thread is waiting on a monitor with no timeout value set
static int STATE_WAITING_WITH_TIMEOUT
          The thread is waiting on a monitor but will timeout at some point
 
Method Summary
 boolean equals(java.lang.Object obj)
           
 ImageThread getImageThread()
          Represents the joining point between the Java view of execution and the corresponding native view.
 ImagePointer getJNIEnv()
          Get the address of the JNIEnv struct which represents this thread instance in JNI.
 java.lang.String getName()
          Return the name of the thread.
 JavaObject getObject()
          Fetch the java.lang.Thread associated with this thread.
 int getPriority()
          Get the Java priority of the thread.
 java.util.Iterator getStackFrames()
          Get the set of stack frames.
 java.util.Iterator getStackSections()
          Get the set of ImageSections which make up the managed stack.
 int getState()
          Get the state of the thread when the image was created.
 int hashCode()
           
 

Field Detail

STATE_ALIVE

static final int STATE_ALIVE
The thread is alive

See Also:
Constant Field Values

STATE_TERMINATED

static final int STATE_TERMINATED
The thread has terminated

See Also:
Constant Field Values

STATE_RUNNABLE

static final int STATE_RUNNABLE
The thread can be run although may not be actually running

See Also:
Constant Field Values

STATE_WAITING_INDEFINITELY

static final int STATE_WAITING_INDEFINITELY
The thread is waiting on a monitor with no timeout value set

See Also:
Constant Field Values

STATE_WAITING_WITH_TIMEOUT

static final int STATE_WAITING_WITH_TIMEOUT
The thread is waiting on a monitor but will timeout at some point

See Also:
Constant Field Values

STATE_SLEEPING

static final int STATE_SLEEPING
The thread is in the Thread.sleep method

See Also:
Constant Field Values

STATE_WAITING

static final int STATE_WAITING
The thread is in a waiting state in native code

See Also:
Constant Field Values

STATE_IN_OBJECT_WAIT

static final int STATE_IN_OBJECT_WAIT
The thread is in Object.wait

See Also:
Constant Field Values

STATE_PARKED

static final int STATE_PARKED
The thread has been deliberately removed from scheduling

See Also:
Constant Field Values

STATE_BLOCKED_ON_MONITOR_ENTER

static final int STATE_BLOCKED_ON_MONITOR_ENTER
The thread is waiting to enter an object monitor

See Also:
Constant Field Values

STATE_SUSPENDED

static final int STATE_SUSPENDED
The thread has been suspended by Thread.suspend

See Also:
Constant Field Values

STATE_INTERRUPTED

static final int STATE_INTERRUPTED
The thread has a pending interrupt

See Also:
Constant Field Values

STATE_IN_NATIVE

static final int STATE_IN_NATIVE
The thread is in native code

See Also:
Constant Field Values

STATE_VENDOR_1

static final int STATE_VENDOR_1
The thread is in a vendor specific state

See Also:
Constant Field Values

STATE_VENDOR_2

static final int STATE_VENDOR_2
The thread is in a vendor specific state

See Also:
Constant Field Values

STATE_VENDOR_3

static final int STATE_VENDOR_3
The thread is in a vendor specific state

See Also:
Constant Field Values
Method Detail

getJNIEnv

ImagePointer getJNIEnv()
                       throws CorruptDataException
Get the address of the JNIEnv struct which represents this thread instance in JNI.

Returns:
the address of the JNIEnv struct which represents this thread instance in JNI
Throws:
CorruptDataException

getPriority

int getPriority()
                throws CorruptDataException
Get the Java priority of the thread.

Returns:
the Java priority of the thread (a number between 1 and 10 inclusive)
Throws:
CorruptDataException
See Also:
Thread.getPriority()

getObject

JavaObject getObject()
                     throws CorruptDataException
Fetch the java.lang.Thread associated with this thread. If the thread is in the process of being attached, this may return null.

Returns:
the a JavaObject representing the java.lang.Thread associated with this thread
Throws:
CorruptDataException
See Also:
JavaObject, Thread

getState

int getState()
             throws CorruptDataException
Get the state of the thread when the image was created.

Returns:
the state of the thread when the image was created. The result is a bit vector, and uses the states defined by the JVMTI specification.
Throws:
CorruptDataException

getImageThread

ImageThread getImageThread()
                           throws CorruptDataException,
                                  DataUnavailable
Represents the joining point between the Java view of execution and the corresponding native view. This method is where the mapping from Java into native threading resources is provided.

Returns:
the ImageThread which this ManagedThread is currently bound to.
Throws:
CorruptDataException - If the underlying resource describing the native representation of the thread is damaged
DataUnavailable - If no mapping is provided due to missing or limited underlying resources (this exception added in DTFJ 1.1)
See Also:
ImageThread

getStackSections

java.util.Iterator getStackSections()
Get the set of ImageSections which make up the managed stack.

Returns:
a collection of ImageSections which make up the managed stack.

Some Runtime implementations may also use parts of the ImageThread's stack for ManagesStackFrames

See Also:
ImageSection, ImageThread.getStackSections(), CorruptData

getStackFrames

java.util.Iterator getStackFrames()
Get the set of stack frames.

Returns:
an iterator to walk the managed stack frames in order from top-of-stack (i.e. most recent frame) to bottom-of-stack
See Also:
JavaStackFrame, CorruptData

getName

java.lang.String getName()
                         throws CorruptDataException
Return the name of the thread. Usually this is derived from the object associated with the thread, but if the name cannot be derived this way (e.g. there is no object associated with the thread) DTFJ will synthesize a name for the thread.

Returns:
the name of the thread
Throws:
CorruptDataException

equals

boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object
Parameters:
obj -
Returns:
True obj refers to the same Java Thread in the image

hashCode

int hashCode()
Overrides:
hashCode in class java.lang.Object