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 and Description
`MonitorInfo(String className, int identityHashCode, int stackDepth, StackTraceElement stackFrame)` Construct a `MonitorInfo` object.

### Method Summary

Methods
`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 inherited from class java.lang.management.LockInfo

`getClassName, getIdentityHashCode, toString`

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### 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 Detail

#### 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:

> Attribute Name | Type
> --- | ---
> lockedStackFrame | `CompositeData as specified in the stackTrace attribute defined in the `ThreadInfo.from` 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.

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.