org.jgroups.blocks

## Interface LockManager

All Known Implementing Classes:
  DistributedLockManager

Deprecated.

    @Deprecated
    public interface LockManager

`LockManager` represents generic lock manager that allows obtaining and releasing locks on objects.

Author:
  Roman Rokytskyy (rrokytskyy@acm.org), Robert Schaffar-Taurok (robert@fusion.at)

### Method Summary

Methods
`void` `lock(java.lang.Object obj, java.lang.Object owner, int timeout)` Deprecated. Obtain lock on `obj` for specified `owner`.
`void` `unlock(java.lang.Object obj, java.lang.Object owner)` Deprecated. Release lock on `obj` owned by specified `owner`.
`void` `unlock(java.lang.Object obj, java.lang.Object owner, boolean releaseMultiLocked)` Deprecated. Release lock on `obj` owned by specified `owner`.

### Method Detail

#### lock

    void lock(java.lang.Object obj,
            java.lang.Object owner,
            int timeout)
              throws LockNotGrantedException,
                     java.lang.ClassCastException,
                     ChannelException

Deprecated.
Obtain lock on `obj` for specified `owner`. Implementation should try to obtain lock few times within the specified timeout.

Parameters:
  `obj` - obj to lock, usually not full object but object's ID.
  `owner` - object identifying entity that will own the lock.
  `timeout` - maximum time that we grant to obtain a lock.
Throws:
  `LockNotGrantedException` - if lock is not granted within specified period.
  `java.lang.ClassCastException` - if `obj` and/or `owner` is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializable `obj` or `owner`).
  `ChannelException` - if something bad happened to communication channel.

#### unlock

    void unlock(java.lang.Object obj,
              java.lang.Object owner)
                throws LockNotReleasedException,
                       java.lang.ClassCastException,
                       ChannelException

Deprecated.
Release lock on `obj` owned by specified `owner`. since 2.2.9 this method is only a wrapper for unlock(Object lockId, Object owner, boolean releaseMultiLocked). Use that with releaseMultiLocked set to true if you want to be able to release multiple locked locks (for example after a merge)

Parameters:
  `obj` - obj to lock, usually not full object but object's ID.
  `owner` - object identifying entity that will own the lock.
Throws:
  `LockOwnerMismatchException` - if lock is owned by another object.
  `java.lang.ClassCastException` - if `obj` and/or `owner` is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializable `obj` or `owner`).
  `ChannelException` - if something bad happened to communication channel.
  `LockNotReleasedException`

#### unlock

    void unlock(java.lang.Object obj,
              java.lang.Object owner,
              boolean releaseMultiLocked)
                throws LockNotReleasedException,
                       java.lang.ClassCastException,
                       ChannelException,
                       LockMultiLockedException

Deprecated.
Release lock on `obj` owned by specified `owner`.

Parameters:
  `obj` - obj to lock, usually not full object but object's ID.
  `owner` - object identifying entity that will own the lock.
  `releaseMultiLocked` - force unlocking of the lock if the local lockManager owns the lock even if another lockManager owns the same lock
Throws:
  `LockOwnerMismatchException` - if lock is owned by another object.
  `java.lang.ClassCastException` - if `obj` and/or `owner` is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializable `obj` or `owner`).
  `ChannelException` - if something bad happened to communication channel.
  `LockMultiLockedException` - if the lock was unlocked, but another node already held the lock
  `LockNotReleasedException`