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
ALockFactorythat wraps anotherLockFactoryand 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 runLockVerifyServeron the host and port matching what you pass to the constructor.- See Also:
LockVerifyServer,LockStressTest
-
-
Field Summary
Fields Modifier and Type Field Description static intMSG_LOCK_ACQUIREDstatic intMSG_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 LockobtainLock(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 toLockVerifyServerout- the socket's output toLockVerifyServer- Throws:
IOException
-
-
Method Detail
-
obtainLock
public Lock obtainLock(Directory dir, String lockName) throws IOException
Description copied from class:LockFactoryReturn a new obtained Lock instance identified by lockName.- Specified by:
obtainLockin classLockFactorylockName- 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
-
-