gnu.crypto.util

Class ExpirableObject

public abstract class ExpirableObject extends Object implements Destroyable

The base class for objects with sensitive data that are automatically destroyed after a timeout elapses. On creation, an object that extends this class will automatically be added to a Timer object that, once a timeout elapses, will automatically call the Destroyable#destroy() method.

Concrete subclasses must implement the doDestroy() method instead of Destroyable#destroy(); the behavior of that method should match exactly the behavior desired of destroy().

Note that if a DestroyFailedException occurs when the timeout expires, it will not be reported.

See Also: Destroyable

Field Summary
static longDEFAULT_TIMEOUT
The default timeout, used in the default constructor.
Constructor Summary
protected ExpirableObject()
Create a new expirable object that will expire after one hour.
protected ExpirableObject(long delay)
Create a new expirable object that will expire after the specified timeout.
Method Summary
voiddestroy()
Destroys this object.
protected abstract voiddoDestroy()
Subclasses must implement this method instead of the Destroyable#destroy() method.

Field Detail

DEFAULT_TIMEOUT

public static final long DEFAULT_TIMEOUT
The default timeout, used in the default constructor.

Constructor Detail

ExpirableObject

protected ExpirableObject()
Create a new expirable object that will expire after one hour.

ExpirableObject

protected ExpirableObject(long delay)
Create a new expirable object that will expire after the specified timeout.

Parameters: delay The delay before expiration.

Throws: IllegalArgumentException If delay is negative, or if delay + System.currentTimeMillis() is negative.

Method Detail

destroy

public final void destroy()
Destroys this object. This method calls doDestroy, then, if no exception is thrown, cancels the task that would destroy this object when the timeout is reached.

Throws: DestroyFailedException If this operation fails.

doDestroy

protected abstract void doDestroy()
Subclasses must implement this method instead of the Destroyable#destroy() method.

Throws: DestroyFailedException If this operation fails.

Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.