# Class LockInfo

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

Direct Known Subclasses:
  `MonitorInfo`

public class LockInfo extends Object
Information about a lock. A lock can be a built-in object monitor, an ownable synchronizer, or the `Condition` object associated with synchronizers.

An ownable synchronizer is a synchronizer that may be exclusively owned by a thread and uses `AbstractOwnableSynchronizer` (or its subclass) to implement its synchronization property. `ReentrantLock` and the write-lock (but not the read-lock) of `ReentrantReadWriteLock` are two examples of ownable synchronizers provided by the platform.

## MXBean Mapping

`LockInfo` is mapped to a `CompositeData` as specified in the `from` method.

Since:
  1.6
See Also:
  - `AbstractOwnableSynchronizer`
  - `Condition`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LockInfo(String className, int identityHashCode)`
  Constructs a `LockInfo` object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static LockInfo`
  `from(CompositeData cd)`
  Returns a `LockInfo` object represented by the given `CompositeData`.
  `String`
  `getClassName()`
  Returns the fully qualified name of the class of the lock object.
  `int`
  `getIdentityHashCode()`
  Returns the identity hash code of the lock object returned from the `System.identityHashCode(Object)` method.
  `String`
  `toString()`
  Returns a string representation of a lock.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### LockInfo

    public LockInfo(String className, int identityHashCode)
    Constructs a `LockInfo` object.
    Parameters:
      `className` - the fully qualified name of the class of the lock object.
      `identityHashCode` - the `identity hash code` of the lock object.

- ## Method Details

  - ### getClassName

    public String getClassName()
    Returns the fully qualified name of the class of the lock object.
    Returns:
      the fully qualified name of the class of the lock object.

  - ### getIdentityHashCode

    public int getIdentityHashCode()
    Returns the identity hash code of the lock object returned from the `System.identityHashCode(Object)` method.
    Returns:
      the identity hash code of the lock object.

  - ### from

    public static LockInfo from(CompositeData cd)
    Returns a `LockInfo` object represented by the given `CompositeData`. The given `CompositeData` must contain the following attributes:

    The attributes and the types the given CompositeData contains
    Attribute Name | Type
    --- | ---
    className | `java.lang.String`
    identityHashCode | `java.lang.Integer`

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

  - ### toString

    public String toString()
    Returns a string representation of a lock. The returned string representation consists of the name of the class of the lock object, the at-sign character `@', and the unsigned hexadecimal representation of the identity hash code of the object. This method returns a string equals to the value of:

    >     lock.getClass().getName() + '@' + Integer.toHexString(System.identityHashCode(lock))

    where `lock` is the lock object.
    Overrides:
      `toString` in class `Object`
    Returns:
      the string representation of a lock.