org.apache.lucene.store

## Class SleepingLockWrapper

- java.lang.Object
- - org.apache.lucene.store.Directory
  - - org.apache.lucene.store.FilterDirectory
    - - org.apache.lucene.store.SleepingLockWrapper

All Implemented Interfaces:
  Closeable, AutoCloseable

    public final class SleepingLockWrapper
    extends FilterDirectory

Directory that wraps another, and that sleeps and retries if obtaining the lock fails.

This is not a good idea.

### Field Summary

Fields
`static long` `DEFAULT_POLL_INTERVAL` How long `obtainLock(java.lang.String)` waits, in milliseconds, in between attempts to acquire the lock.
`static long` `LOCK_OBTAIN_WAIT_FOREVER` Pass this lockWaitTimeout to try forever to obtain the lock.

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

`in`

### Constructor Summary

Constructors
Constructor and Description
`SleepingLockWrapper(Directory delegate, long lockWaitTimeout)` Create a new SleepingLockFactory
`SleepingLockWrapper(Directory delegate, long lockWaitTimeout, long pollInterval)` Create a new SleepingLockFactory

### Method Summary

All Methods Instance Methods Concrete Methods
`Lock` `obtainLock(String lockName)` Acquires and returns a `Lock` for a file with the given name.
`String` `toString()`

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

`close, createOutput, createTempOutput, deleteFile, fileLength, getDelegate, getPendingDeletions, listAll, openInput, rename, sync, syncMetaData, unwrap`

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

`copyFrom, ensureOpen, getTempFileName, openChecksumInput`

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

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

### Field Detail

#### LOCK_OBTAIN_WAIT_FOREVER

    public static final long LOCK_OBTAIN_WAIT_FOREVER

Pass this lockWaitTimeout to try forever to obtain the lock.

See Also:
  Constant Field Values

#### DEFAULT_POLL_INTERVAL

    public static long DEFAULT_POLL_INTERVAL

How long `obtainLock(java.lang.String)` waits, in milliseconds, in between attempts to acquire the lock.

### Constructor Detail

#### SleepingLockWrapper

    public SleepingLockWrapper(Directory delegate,
                               long lockWaitTimeout)

Create a new SleepingLockFactory

Parameters:
  `delegate` - underlying directory to wrap
  `lockWaitTimeout` - length of time to wait in milliseconds or `LOCK_OBTAIN_WAIT_FOREVER` to retry forever.

#### SleepingLockWrapper

    public SleepingLockWrapper(Directory delegate,
                               long lockWaitTimeout,
                               long pollInterval)

Create a new SleepingLockFactory

Parameters:
  `delegate` - underlying directory to wrap
  `lockWaitTimeout` - length of time to wait in milliseconds or `LOCK_OBTAIN_WAIT_FOREVER` to retry forever.
  `pollInterval` - poll once per this interval in milliseconds until `lockWaitTimeout` is exceeded.

### Method Detail

#### obtainLock

    public Lock obtainLock(String lockName)
                    throws IOException

Description copied from class: `Directory`
Acquires and returns a `Lock` for a file with the given name.

Overrides:
  `obtainLock` in class `FilterDirectory`
Parameters:
  `lockName` - the name of the lock file
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

#### toString

    public String toString()

Overrides:
  `toString` in class `FilterDirectory`