diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/jdk1.1/java/security/cert/CertStoreException.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/jdk1.1/java/security/cert/CertStoreException.java | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/main/jdk1.1/java/security/cert/CertStoreException.java b/libraries/spongycastle/core/src/main/jdk1.1/java/security/cert/CertStoreException.java new file mode 100644 index 000000000..a15bc3df6 --- /dev/null +++ b/libraries/spongycastle/core/src/main/jdk1.1/java/security/cert/CertStoreException.java @@ -0,0 +1,172 @@ +package java.security.cert; + +import java.io.PrintStream; +import java.io.PrintWriter; +import java.security.GeneralSecurityException; + +/** + * An exception indicating one of a variety of problems retrieving + * certificates and CRLs from a <code>CertStore</code>.<br /> + * <br /> + * A <code>CertStoreException</code> provides support for wrapping + * exceptions. The {@link #getCause getCause} method returns the throwable, + * if any, that caused this exception to be thrown.<br /> + * <br /> + * <b>Concurrent Access</b><br /> + * <br /> + * Unless otherwise specified, the methods defined in this class are not + * thread-safe. Multiple threads that need to access a single + * object concurrently should synchronize amongst themselves and + * provide the necessary locking. Multiple threads each manipulating + * separate objects need not synchronize. + * + * @see CertStore + **/ +public class CertStoreException extends GeneralSecurityException +{ + private Throwable cause; + + /** + * Creates a <code>CertStoreException</code> with <code>null</code> as + * its detail message. + */ + public CertStoreException() + { + super(); + } + + /** + * Creates a <code>CertStoreException</code> with the given detail + * message. A detail message is a <code>String</code> that describes this + * particular exception. + * + * @param messag the detail message + */ + public CertStoreException(String message) + { + super(message); + } + + /** + * Creates a <code>CertStoreException</code> with the specified detail + * message and cause. + * + * @param messag the detail message + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause getCause()} method). (A <code>null</code> value is + * permitted, and indicates that the cause is nonexistent or unknown.) + */ + public CertStoreException(String message, Throwable cause) + { + super(message); + this.cause = cause; + } + + /** + * Creates a <code>CertStoreException</code> that wraps the specified + * throwable. This allows any exception to be converted into a + * <code>CertStoreException</code>, while retaining information about the + * cause, which may be useful for debugging. The detail message is + * set to (<code>cause==null ? null : cause.toString()</code>) (which + * typically contains the class and detail message of cause). + * + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause getCause()} method). (A <code>null</code> value is + * permitted, and indicates that the cause is nonexistent or unknown.) + */ + public CertStoreException(Throwable cause) + { + this.cause = cause; + } + + /** + * Returns the detail message for this <code>CertStoreException</code>. + * + * @return the detail message, or <code>null</code> if neither the message + * nor cause were specified + */ + public String getMessage() + { + String message = super.getMessage(); + + if ( message == null && cause == null ) + return null; + + StringBuffer s = new StringBuffer(); + if ( message != null ) + { + s.append(message).append('\n'); + } + if ( cause != null ) + { + s.append("Cause:\n").append(cause.getMessage()); + } + return s.toString(); + } + + /** + * Returns the cause of this <code>CertStoreException</code> or + * <code>null</code> if the cause is nonexistent or unknown. + * + * @return the cause of this throwable or <code>null</code> if the cause + * is nonexistent or unknown. + */ + public Throwable getCause() + { + return cause; + } + + /** + * Returns a string describing this exception, including a description + * of the internal (wrapped) cause if there is one. + * + * @return a string representation of this + * <code>CertStoreException</code> + */ + public String toString() + { + String message = getMessage(); + if ( message == null ) + return ""; + + return message; + } + + /** + * Prints a stack trace to <code>System.err</code>, including the backtrace + * of the cause, if any. + */ + public void printStackTrace() { + printStackTrace(System.err); + } + + /** + * Prints a stack trace to a <code>PrintStream</code>, including the + * backtrace of the cause, if any. + * + * @param ps the <code>PrintStream</code> to use for output + */ + public void printStackTrace(PrintStream ps) { + super.printStackTrace(ps); + if ( cause != null ) { + cause.printStackTrace(ps); + } + } + + /** + * Prints a stack trace to a <code>PrintWriter</code>, including the + * backtrace of the cause, if any. + * + * @param pw the <code>PrintWriter</code> to use for output + */ + public void printStackTrace(PrintWriter pw) { + if ( cause != null ) { + cause.printStackTrace(pw); + } + super.printStackTrace(pw); + if ( cause != null ) { + cause.printStackTrace(pw); + } + } +} + |