Thrown when a lock or transaction timeout occurs and {@link EnvironmentConfig#LOCK_OLD_LOCK_EXCEPTIONS} is set to true.
Currently (unless {@link EnvironmentConfig#LOCK_OLD_LOCK_EXCEPTIONS} isset to true, see below) {@link DeadlockException} is not thrown by JEbecause true deadlock detection is not used in JE. Currently, lock timeouts are used instead, and a deadlock will cause a {@link LockTimeoutException}. When true deadlock detection is added to JE in the future, {@link DeadlockException} will be thrown instead of {@link LockTimeoutException}when a true deadlock occurs.
For compatibility with JE 3.3 and earlier, {@link DeadlockException} isthrown instead of {@link LockTimeoutException} and {@link TransactionTimeoutException} when {@link EnvironmentConfig#LOCK_OLD_LOCK_EXCEPTIONS} is set to true. Thisconfiguration parameter is false by default. See {@link EnvironmentConfig#LOCK_OLD_LOCK_EXCEPTIONS} for information on the changesthat should be made to all applications that upgrade from JE 3.3 or earlier.
Normally, applications should catch the base class {@link LockConflictException} rather than catching one of its subclasses. All lockconflicts are typically handled in the same way, which is normally to abort and retry the transaction. See {@link LockConflictException} for moreinformation.
The {@link Transaction} handle is invalidated as a result of thisexception.
@deprecated temporarily until true deadlock detection is implemented.Presently, {code DeadlockException} is replaced by {@link LockConflictException} as the common base class for lock conflictexceptions.