Module java.management
Package java.lang.management

# Class MonitorInfo

java.lang.Object
java.lang.management.LockInfo
java.lang.management.MonitorInfo

public class MonitorInfo extends LockInfo
Information about an object monitor lock. An object monitor is locked when entering a synchronization block or method on that object.

## MXBean Mapping

`MonitorInfo` is mapped to a `CompositeData` with attributes as specified in the `from` method.

Since:
  1.6

## Constructor Summary

Constructors
Constructor
Description
`MonitorInfo(String className, int identityHashCode, int stackDepth, StackTraceElement stackFrame)`
Construct a `MonitorInfo` object.

## Method Summary

Modifier and Type
Method
Description
`static MonitorInfo`
`from(CompositeData cd)`
Returns a `MonitorInfo` object represented by the given `CompositeData`.
`int`
`getLockedStackDepth()`
Returns the depth in the stack trace where the object monitor was locked.
`StackTraceElement`
`getLockedStackFrame()`
Returns the stack frame that locked the object monitor.

### Methods declared in class java.lang.management.LockInfo

`getClassName, getIdentityHashCode, toString`

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### MonitorInfo

public MonitorInfo(String className, int identityHashCode, int stackDepth, StackTraceElement stackFrame)
Construct a `MonitorInfo` object.

Parameters:
  `className` - the fully qualified name of the class of the lock object.
  `identityHashCode` - the `identity hash code` of the lock object.
  `stackDepth` - the depth in the stack trace where the object monitor was locked.
  `stackFrame` - the stack frame that locked the object monitor.
Throws:
  `IllegalArgumentException` - if `stackDepth` ≥ 0 but `stackFrame` is `null`, or `stackDepth` < 0 but `stackFrame` is not `null`.

## Method Details

### getLockedStackDepth

public int getLockedStackDepth()
Returns the depth in the stack trace where the object monitor was locked. The depth is the index to the `StackTraceElement` array returned in the `ThreadInfo.getStackTrace()` method.

Returns:
  the depth in the stack trace where the object monitor was locked, or a negative number if not available.

### getLockedStackFrame

public StackTraceElement getLockedStackFrame()
Returns the stack frame that locked the object monitor.

Returns:
  `StackTraceElement` that locked the object monitor, or `null` if not available.

### from

public static MonitorInfo from(CompositeData cd)
Returns a `MonitorInfo` object represented by the given `CompositeData`. The given `CompositeData` must contain the following attributes as well as the attributes specified in the mapped type for the `LockInfo` class:

The attributes and their types the given CompositeData contains
Attribute Name | Type
--- | ---
lockedStackFrame | `CompositeData` for `StackTraceElement` as specified in `ThreadInfo.from(CompositeData)` method.
lockedStackDepth | `java.lang.Integer`

Parameters:
  `cd` - `CompositeData` representing a `MonitorInfo`
Returns:
  a `MonitorInfo` object represented by `cd` if `cd` is not `null`; `null` otherwise.
Throws:
  `IllegalArgumentException` - if `cd` does not represent a `MonitorInfo` with the attributes described above.