Package org.apache.catalina.session

# Class FileStore

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.session.StoreBase
org.apache.catalina.session.FileStore

All Implemented Interfaces:
  `Lifecycle`, `Store`

public final class FileStore extends StoreBase
Concrete implementation of the Store interface that utilizes a file per saved Session in a configured directory. Sessions that are saved are still subject to being expired based on inactivity.

Author:
  Craig R. McClanahan

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

`Lifecycle.SingleUse`

## Field Summary

### Fields inherited from class org.apache.catalina.session.StoreBase

`manager, support`

### Fields inherited from interface org.apache.catalina.Lifecycle

`AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

## Constructor Summary

Constructors
Constructor
Description
`FileStore()`

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Remove all Sessions from this Store.
`String`
`getDirectory()`
`int`
`getSize()`
`String`
`getStoreName()`
`String`
`getThreadName()`
`String[]`
`keys()`
`Session`
`load(String id)`
Load and return the Session associated with the specified session identifier from this Store, without removing it.
`void`
`remove(String id)`
Remove the Session with the specified session identifier from this Store, if present.
`void`
`save(Session session)`
Save the specified Session into this Store.
`void`
`setDirectory(String path)`
Set the directory path for this Store.

### Methods inherited from class org.apache.catalina.session.StoreBase

`addPropertyChangeListener, destroyInternal, expiredKeys, getManager, getObjectInputStream, initInternal, processExpires, removePropertyChangeListener, setManager, startInternal, stopInternal, toString`

### Methods inherited from class org.apache.catalina.util.LifecycleBase

`addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### FileStore

public FileStore()

## Method Details

### getDirectory

public String getDirectory()

Returns:
  The directory path for this Store.

### setDirectory

public void setDirectory(String path)
Set the directory path for this Store.

Parameters:
  `path` - The new directory path

### getThreadName

public String getThreadName()

Returns:
  The thread name for this Store.

### getStoreName

public String getStoreName()

Overrides:
  `getStoreName` in class `StoreBase`
Returns:
  the name for this Store, used for logging.

### getSize

public int getSize() throws IOException

Returns:
  the number of Sessions present in this Store.
Throws:
  `IOException` - if an input/output error occurs

### clear

public void clear() throws IOException
Description copied from interface: `Store`
Remove all Sessions from this Store.

Throws:
  `IOException` - if an input/output error occurs

### keys

public String[] keys() throws IOException

Returns:
  an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.
Throws:
  `IOException` - if an input/output error occurred

### load

public Session load(String id) throws ClassNotFoundException, IOException
Description copied from interface: `Store`
Load and return the Session associated with the specified session identifier from this Store, without removing it. If there is no such stored Session, return `null`.

Parameters:
  `id` - Session identifier of the session to load
Returns:
  the loaded Session instance
Throws:
  `ClassNotFoundException` - if a deserialization error occurs
  `IOException` - if an input/output error occurs

### remove

public void remove(String id) throws IOException
Description copied from interface: `Store`
Remove the Session with the specified session identifier from this Store, if present. If no such Session is present, this method takes no action.

Parameters:
  `id` - Session identifier of the Session to be removed
Throws:
  `IOException` - if an input/output error occurs

### save

public void save(Session session) throws IOException
Description copied from interface: `Store`
Save the specified Session into this Store. Any previously saved information for the associated session identifier is replaced.

Parameters:
  `session` - Session to be saved
Throws:
  `IOException` - if an input/output error occurs