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.
MonitorInfo
is mapped to a CompositeData
with attributes as specified in the from
method. public MonitorInfo(String className, int identityHashCode, int stackDepth, StackTraceElement stackFrame)
Construct a MonitorInfo
object.
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.IllegalArgumentException
- if stackDepth
≥ 0 but stackFrame
is null
, or stackDepth
< 0 but stackFrame
is not null
.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.
public StackTraceElement getLockedStackFrame()
Returns the stack frame that locked the object monitor.
StackTraceElement
that locked the object monitor, or null
if not available.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 |
lockedStackDepth | java.lang.Integer |
cd
- CompositeData
representing a MonitorInfo
MonitorInfo
object represented by cd
if cd
is not null
; null
otherwise.IllegalArgumentException
- if cd
does not represent a MonitorInfo
with the attributes described above.
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.