java.lang.Object | |||
↳ | org.apache.lucene.store.LockFactory | ||
↳ | org.apache.lucene.store.FSLockFactory | ||
↳ | org.apache.lucene.store.SimpleFSLockFactory |
Implements LockFactory
using createNewFile()
.
NOTE: the javadocs
for File.createNewFile
contain a vague
yet spooky warning about not using the API for file
locking. This warning was added due to this
bug, and in fact the only known problem with using
this API for locking is that the Lucene write lock may
not be released when the JVM exits abnormally.
When this happens, a LockObtainFailedException
is hit when trying to create a writer, in which case you
need to explicitly clear the lock file first. You can
either manually remove the file, or use the unlock(Directory)
API. But, first be certain that no writer is in fact
writing to the index otherwise you can easily corrupt
your index.
If you suspect that this or any other LockFactory is
not working properly in your environment, you can easily
test it by using VerifyingLockFactory
, LockVerifyServer
and LockStressTest
.
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.apache.lucene.store.FSLockFactory
| |||||||||||
From class
org.apache.lucene.store.LockFactory
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a SimpleFSLockFactory instance, with null (unset)
lock directory.
| |||||||||||
Instantiate using the provided directory (as a File instance).
| |||||||||||
Instantiate using the provided directory name (String).
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Attempt to clear (forcefully unlock and remove) the
specified lock.
| |||||||||||
Return a new Lock instance identified by lockName.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.apache.lucene.store.FSLockFactory
| |||||||||||
From class
org.apache.lucene.store.LockFactory
| |||||||||||
From class
java.lang.Object
|
Create a SimpleFSLockFactory instance, with null (unset)
lock directory. When you pass this factory to a FSDirectory
subclass, the lock directory is automatically set to the
directory itsself. Be sure to create one instance for each directory
your create!
IOException |
---|
Instantiate using the provided directory (as a File instance).
lockDir | where lock files should be created. |
---|
IOException |
---|
Instantiate using the provided directory name (String).
lockDirName | where lock files should be created. |
---|
IOException |
---|
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.
lockName | name of the lock to be cleared. |
---|
IOException |
---|
Return a new Lock instance identified by lockName.
lockName | name of the lock to be created. |
---|