Record Class DeadlockChain
java.lang.Object
java.lang.Record
org.ek9lang.compiler.phase5.lockanalysis.DeadlockChain
- Record Components:
errorCode-"E08252"or"E08253".steps- ordered chain steps with full hyperlink data for IDE.outerLockIdentityId- FK intoLockAnalysis.identitiesById()— the outer lock held when the cycle starts.innerLockIdentityId- FK intoLockAnalysis.identitiesById()— the inner lock that closes the cycle.path- composed edge kind across the reaching call path —EdgeKind.SAME_THREADorEdgeKind.CROSS_THREAD.
public record DeadlockChain(String errorCode, List<ChainStep> steps, String outerLockIdentityId, String innerLockIdentityId, EdgeKind path)
extends Record
Full rationale for a single detected deadlock — either
E08252 (nested enter
on different lock identity) or E08253 (cross-thread same lock).
The steps list is ordered from outer to inner: position 0 is the outermost
enter() or KEY_BODY_ENTRY; the final step is the inner enter()
site whose acquisition completes the cycle. Intermediate steps are StepKind.CALL
and StepKind.CROSS_THREAD_BOUNDARY transitions along the reaching call path.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanIndicates whether some other object is "equal to" this one.Returns the value of theerrorCoderecord component.final inthashCode()Returns a hash code value for this object.Returns the value of theinnerLockIdentityIdrecord component.Returns the value of theouterLockIdentityIdrecord component.path()Returns the value of thepathrecord component.steps()Returns the value of thestepsrecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
DeadlockChain
public DeadlockChain(String errorCode, List<ChainStep> steps, String outerLockIdentityId, String innerLockIdentityId, EdgeKind path) Creates an instance of aDeadlockChainrecord class.- Parameters:
errorCode- the value for theerrorCoderecord componentsteps- the value for thestepsrecord componentouterLockIdentityId- the value for theouterLockIdentityIdrecord componentinnerLockIdentityId- the value for theinnerLockIdentityIdrecord componentpath- the value for thepathrecord component
-
-
Method Details
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
errorCode
-
steps
-
outerLockIdentityId
Returns the value of theouterLockIdentityIdrecord component.- Returns:
- the value of the
outerLockIdentityIdrecord component
-
innerLockIdentityId
Returns the value of theinnerLockIdentityIdrecord component.- Returns:
- the value of the
innerLockIdentityIdrecord component
-
path
-