com.google.common.util.concurrent

## Class CycleDetectingLockFactory.PotentialDeadlockException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.lang.RuntimeException
      - - java.lang.IllegalStateException
        - - com.google.common.util.concurrent.CycleDetectingLockFactory.PotentialDeadlockException

- All Implemented Interfaces:
    java.io.Serializable
  Enclosing class:
    CycleDetectingLockFactory

      @Beta
      public static final class CycleDetectingLockFactory.PotentialDeadlockException
      extends java.lang.IllegalStateException

  Represents a detected cycle in lock acquisition ordering. The exception includes a causal chain of `ExampleStackTrace` instances to illustrate the cycle, e.g.

       com....PotentialDeadlockException: Potential Deadlock from LockC -> ReadWriteA
         at ...
         at ...
       Caused by: com...ExampleStackTrace: LockB -> LockC
         at ...
         at ...
       Caused by: com...ExampleStackTrace: ReadWriteA -> LockB
         at ...
         at ...

  Instances are logged for the `Policies.WARN`, and thrown for `Policies.THROW`.

  Since:
    13.0
  See Also:
    Serialized Form

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.common.util.concurrent.CycleDetectingLockFactory.ExampleStackTrace` | `getConflictingStackTrace()`
    `java.lang.String` | `getMessage()` Appends the chain of messages from the `conflictingStackTrace` to the original `message`.

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getConflictingStackTrace

          public com.google.common.util.concurrent.CycleDetectingLockFactory.ExampleStackTrace getConflictingStackTrace()

    - #### getMessage

          public java.lang.String getMessage()

      Appends the chain of messages from the `conflictingStackTrace` to the original `message`.
      Overrides:
        `getMessage` in class `java.lang.Throwable`