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 and Description
    --- | ---
    `static int` | `MSG_LOCK_ACQUIRED`
    `static int` | `MSG_LOCK_RELEASED`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 Detail

    - #### 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 Detail

    - #### 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 Detail

    - #### 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`
        `lockName` - name of the lock to be created.
      Throws:
        `LockObtainFailedException` - (optional specific exception) if the lock could not be obtained because it is currently held elsewhere.
        `IOException` - if any i/o error occurs attempting to gain the lock

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.