org.apache.lucene.store

## Class VerifyingLockFactory

- java.lang.Object
- - org.apache.lucene.store.LockFactory
  - - org.apache.lucene.store.VerifyingLockFactory

    public class VerifyingLockFactory
    extends LockFactory

A `LockFactory` that wraps another `LockFactory` and verifies that each lock obtain/release is "correct" (never results in two processes holding the lock at the same time). It does this by contacting an external server (`LockVerifyServer`) to assert that at most one process holds the lock at a time. To use this, you should also run `LockVerifyServer` on the host & port matching what you pass to the constructor.

See Also:
  `LockVerifyServer`, `LockStressTest`

### Field Summary

### Fields inherited from class org.apache.lucene.store.LockFactory

`lockPrefix`

### Constructor Summary

Constructors
Constructor and Description
`VerifyingLockFactory(byte id, LockFactory lf, String host, int port)`

### Method Summary

Methods
`void` `clearLock(String lockName)` Attempt to clear (forcefully unlock and remove) the specified lock.
`Lock` `makeLock(String lockName)` Return a new Lock instance identified by lockName.

### Methods inherited from class org.apache.lucene.store.LockFactory

`getLockPrefix, setLockPrefix`

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

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

### Constructor Detail

#### VerifyingLockFactory

    public VerifyingLockFactory(byte id,
                        LockFactory lf,
                        String host,
                        int port)

Parameters:
  `id` - should be a unique id across all clients
  `lf` - the LockFactory that we are testing
  `host` - host or IP where `LockVerifyServer` is running
  `port` - the port `LockVerifyServer` is listening on

### Method Detail

#### makeLock

    public Lock makeLock(String lockName)

Description copied from class: `LockFactory`
Return a new Lock instance identified by lockName.

Specified by:
  `makeLock` in class `LockFactory`
Parameters:
  `lockName` - name of the lock to be created.

#### clearLock

    public void clearLock(String lockName)
                   throws IOException

Description copied from class: `LockFactory`
Attempt to clear (forcefully unlock and remove) the specified lock. Only call this at a time when you are certain this lock is no longer in use.

Specified by:
  `clearLock` in class `LockFactory`
Parameters:
  `lockName` - name of the lock to be cleared.
Throws:
  `IOException`