For the latest news and information visit
The GNU Crypto project

gnu.crypto.util
Class ExpirableObject

java.lang.Object
  extended by gnu.crypto.util.ExpirableObject
All Implemented Interfaces:
Destroyable
Direct Known Subclasses:
Password

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 long DEFAULT_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
 void destroy()
          Destroys this object.
protected abstract  void doDestroy()
          Subclasses must implement this method instead of the Destroyable.destroy() method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.security.auth.Destroyable
isDestroyed
 

Field Detail

DEFAULT_TIMEOUT

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

See Also:
Constant Field Values
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()
                   throws DestroyFailedException
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.

Specified by:
destroy in interface Destroyable
Throws:
DestroyFailedException - If this operation fails.

doDestroy

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

Throws:
DestroyFailedException - If this operation fails.

For the latest news and information visit
The GNU Crypto project

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