## 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
`VerifyingLockFactory(byte id, LockFactory lf, String host, int port)`

Method Summary
`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)
                         throws IOException

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
Throws:
  `IOException`

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`