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

      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.