Package org.h2.util
Class AbbaDetector
- java.lang.Object
-
- org.h2.util.AbbaDetector
-
public class AbbaDetector extends java.lang.ObjectUtility to detect AB-BA deadlocks.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Set<java.lang.String>KNOWN_DEADLOCKSprivate static java.util.Map<java.lang.Object,java.util.Map<java.lang.Object,java.lang.Exception>>LOCK_ORDERINGMap of (object A) -> ( map of (object locked before object A) -> (stack trace where locked) )private static java.lang.ThreadLocal<java.util.Deque<java.lang.Object>>STACKprivate static booleanTRACE
-
Constructor Summary
Constructors Constructor Description AbbaDetector()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Objectbegin(java.lang.Object o)This method is called just before or just after an object is synchronized.private static java.lang.StringgetObjectName(java.lang.Object o)private static java.lang.ObjectgetTest(java.lang.Object o)private static voidmarkHigher(java.lang.Object o, java.util.Deque<java.lang.Object> older)
-
-
-
Field Detail
-
TRACE
private static final boolean TRACE
- See Also:
- Constant Field Values
-
STACK
private static final java.lang.ThreadLocal<java.util.Deque<java.lang.Object>> STACK
-
LOCK_ORDERING
private static final java.util.Map<java.lang.Object,java.util.Map<java.lang.Object,java.lang.Exception>> LOCK_ORDERING
Map of (object A) -> ( map of (object locked before object A) -> (stack trace where locked) )
-
KNOWN_DEADLOCKS
private static final java.util.Set<java.lang.String> KNOWN_DEADLOCKS
-
-
Method Detail
-
begin
public static java.lang.Object begin(java.lang.Object o)
This method is called just before or just after an object is synchronized.- Parameters:
o- the object, or null for the current class- Returns:
- the object that was passed
-
getTest
private static java.lang.Object getTest(java.lang.Object o)
-
getObjectName
private static java.lang.String getObjectName(java.lang.Object o)
-
markHigher
private static void markHigher(java.lang.Object o, java.util.Deque<java.lang.Object> older)
-
-