Package org.apache.lucene.store

# Class VerifyingLockFactory

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

public final 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 and port matching what you pass to the constructor.

See Also:
  - `LockVerifyServer`
  - `LockStressTest`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `MSG_LOCK_ACQUIRED`
  `static final int`
  `MSG_LOCK_RELEASED`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VerifyingLockFactory(LockFactory lf, InputStream in, OutputStream out)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Lock`
  `obtainLock(Directory dir, String lockName)`
  Return a new obtained Lock instance identified by lockName.

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

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

- ## Field Details

  - ### MSG_LOCK_RELEASED

    public static final int MSG_LOCK_RELEASED
    See Also:
      - Constant Field Values

  - ### MSG_LOCK_ACQUIRED

    public static final int MSG_LOCK_ACQUIRED
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### VerifyingLockFactory

    public VerifyingLockFactory(LockFactory lf, InputStream in, OutputStream out) throws IOException
    Parameters:
      `lf` - the LockFactory that we are testing
      `in` - the socket's input to `LockVerifyServer`
      `out` - the socket's output to `LockVerifyServer`
    Throws:
      `IOException`

- ## Method Details

  - ### obtainLock

    public Lock obtainLock(Directory dir, String lockName) throws IOException
    Description copied from class: `LockFactory`
    Return a new obtained Lock instance identified by lockName.
    Specified by:
      `obtainLock` in class `LockFactory`
    Parameters:
      `lockName` - name of the lock to be created.
    Throws:
      `IOException` - if any i/o error occurs attempting to gain the lock