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
ALockFactory
that wraps anotherLockFactory
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 runLockVerifyServer
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 int
MSG_LOCK_ACQUIRED
static int
MSG_LOCK_RELEASED
-
Constructor Summary
Constructors Constructor Description VerifyingLockFactory(LockFactory lf, InputStream in, OutputStream out)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Lock
obtainLock(Directory dir, String lockName)
Return a new obtained Lock instance identified by lockName.
-
-
-
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 testingin
- the socket's input toLockVerifyServer
out
- the socket's output toLockVerifyServer
- 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 classLockFactory
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
-
-