## org.apache.lucene.store
Class SimpleFSLockFactory

    java.lang.Object
      org.apache.lucene.store.LockFactory
          org.apache.lucene.store.FSLockFactory
              org.apache.lucene.store.SimpleFSLockFactory

    public class SimpleFSLockFactory

extends FSLockFactory

Implements `LockFactory` using `File.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 `IndexWriter.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`.

See Also:
  `LockFactory`

Field Summary

Fields inherited from class org.apache.lucene.store.FSLockFactory
`lockDir`

Fields inherited from class org.apache.lucene.store.LockFactory
`lockPrefix`

Constructor Summary
`SimpleFSLockFactory()` Create a SimpleFSLockFactory instance, with null (unset) lock directory.
`SimpleFSLockFactory(File lockDir)` Instantiate using the provided directory (as a File instance).
`SimpleFSLockFactory(String lockDirName)` Instantiate using the provided directory name (String).

Method Summary
`void` `clearLock(String lockName)` Attempt to clear (forcefully unlock and remove) the specified lock.
`Lock` `makeLock(String lockName)` Return a new Lock instance identified by lockName.

Methods inherited from class org.apache.lucene.store.FSLockFactory
`getLockDir, setLockDir`

Methods inherited from class org.apache.lucene.store.LockFactory
`getLockPrefix, setLockPrefix`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SimpleFSLockFactory

    public SimpleFSLockFactory()
                        throws IOException

  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 itself. Be sure to create one instance for each directory your create!

  Throws:
    `IOException`

### SimpleFSLockFactory

    public SimpleFSLockFactory(File lockDir)
                        throws IOException

  Instantiate using the provided directory (as a File instance).

  Parameters:
    `lockDir` - where lock files should be created.
  Throws:
    `IOException`

### SimpleFSLockFactory

    public SimpleFSLockFactory(String lockDirName)
                        throws IOException

  Instantiate using the provided directory name (String).

  Parameters:
    `lockDirName` - where lock files should be created.
  Throws:
    `IOException`

Method Detail

### makeLock

    public Lock makeLock(String lockName)

  Description copied from class: `LockFactory`
  Return a new Lock instance identified by lockName.

  Specified by:
    `makeLock` in class `LockFactory`
  Parameters:
    `lockName` - name of the lock to be created.

### clearLock

    public void clearLock(String lockName)
                   throws 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 class `LockFactory`
  Parameters:
    `lockName` - name of the lock to be cleared.
  Throws:
    `IOException`