Package org.apache.lucene.store
Class VerifyingLockFactory
- java.lang.Object
-
- org.apache.lucene.store.LockFactory
-
- org.apache.lucene.store.VerifyingLockFactory
-
public 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 & port matching what you pass to the constructor.- See Also:
LockVerifyServer
,LockStressTest
-
-
Constructor Summary
Constructors Constructor Description VerifyingLockFactory(byte id, LockFactory lf, java.lang.String host, int port)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearLock(java.lang.String lockName)
Attempt to clear (forcefully unlock and remove) the specified lock.Lock
makeLock(java.lang.String lockName)
Return a new Lock instance identified by lockName.-
Methods inherited from class org.apache.lucene.store.LockFactory
getLockPrefix, setLockPrefix
-
-
-
-
Constructor Detail
-
VerifyingLockFactory
public VerifyingLockFactory(byte id, LockFactory lf, java.lang.String host, int port)
- Parameters:
id
- should be a unique id across all clientslf
- the LockFactory that we are testinghost
- host or IP whereLockVerifyServer
is runningport
- the portLockVerifyServer
is listening on
-
-
Method Detail
-
makeLock
public Lock makeLock(java.lang.String lockName)
Description copied from class:LockFactory
Return a new Lock instance identified by lockName.- Specified by:
makeLock
in classLockFactory
- Parameters:
lockName
- name of the lock to be created.
-
clearLock
public void clearLock(java.lang.String lockName) throws java.io.IOException
Description copied from class:LockFactory
Attempt to clear (forcefully unlock and remove) the specified lock. Only call this at a time when you are certain this lock is no longer in use.- Specified by:
clearLock
in classLockFactory
- Parameters:
lockName
- name of the lock to be cleared.- Throws:
java.io.IOException
-
-