Package 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 Modifier and Type Field Description static longDEFAULT_POLL_INTERVALHow longobtainLock(java.lang.String)waits, in milliseconds, in between attempts to acquire the lock.static longLOCK_OBTAIN_WAIT_FOREVERPass this lockWaitTimeout to try forever to obtain the lock.-
Fields inherited from class org.apache.lucene.store.FilterDirectory
in
-
-
Constructor Summary
Constructors Constructor Description SleepingLockWrapper(Directory delegate, long lockWaitTimeout)Create a new SleepingLockFactorySleepingLockWrapper(Directory delegate, long lockWaitTimeout, long pollInterval)Create a new SleepingLockFactory
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LockobtainLock(String lockName)Acquires and returns aLockfor a file with the given name.StringtoString()-
Methods inherited from class org.apache.lucene.store.FilterDirectory
close, createOutput, createTempOutput, deleteFile, ensureOpen, fileLength, getDelegate, getPendingDeletions, listAll, openInput, rename, sync, syncMetaData, unwrap
-
Methods inherited from class org.apache.lucene.store.Directory
copyFrom, getTempFileName, openChecksumInput
-
-
-
-
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 longobtainLock(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 wraplockWaitTimeout- length of time to wait in milliseconds orLOCK_OBTAIN_WAIT_FOREVERto retry forever.
-
SleepingLockWrapper
public SleepingLockWrapper(Directory delegate, long lockWaitTimeout, long pollInterval)
Create a new SleepingLockFactory- Parameters:
delegate- underlying directory to wraplockWaitTimeout- length of time to wait in milliseconds orLOCK_OBTAIN_WAIT_FOREVERto retry forever.pollInterval- poll once per this interval in milliseconds untillockWaitTimeoutis exceeded.
-
-
Method Detail
-
obtainLock
public Lock obtainLock(String lockName) throws IOException
Description copied from class:DirectoryAcquires and returns aLockfor a file with the given name.- Overrides:
obtainLockin classFilterDirectory- 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:
toStringin classFilterDirectory
-
-