- /*
 - * @(#)PrivilegedActionException.java 1.16 03/12/19
 - *
 - * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
 - * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 - */
 - package java.security;
 - /**
 - * This exception is thrown by
 - * <code>doPrivileged(PrivilegedExceptionAction)</code> and
 - * <code>doPrivileged(PrivilegedExceptionAction,
 - * AccessControlContext context)</code> to indicate
 - * that the action being performed threw a checked exception. The exception
 - * thrown by the action can be obtained by calling the
 - * <code>getException</code> method. In effect, an
 - * <code>PrivilegedActionException</code> is a "wrapper"
 - * for an exception thrown by a privileged action.
 - *
 - * <p>As of release 1.4, this exception has been retrofitted to conform to
 - * the general purpose exception-chaining mechanism. The "exception thrown
 - * by the privileged computation" that is provided at construction time and
 - * accessed via the {@link #getException()} method is now known as the
 - * <i>cause</i>, and may be accessed via the {@link Throwable#getCause()}
 - * method, as well as the aforementioned "legacy method."
 - *
 - * @see PrivilegedExceptionAction
 - * @see AccessController#doPrivileged(PrivilegedExceptionAction)
 - * @see AccessController#doPrivileged(PrivilegedExceptionAction,AccessControlContext)
 - */
 - public class PrivilegedActionException extends Exception {
 - // use serialVersionUID from JDK 1.2.2 for interoperability
 - private static final long serialVersionUID = 4724086851538908602L;
 - /**
 - * @serial
 - */
 - private Exception exception;
 - /**
 - * Constructs a new PrivilegedActionException "wrapping"
 - * the specific Exception.
 - *
 - * @param exception The exception thrown
 - */
 - public PrivilegedActionException(Exception exception) {
 - super((Throwable)null); // Disallow initCause
 - this.exception = exception;
 - }
 - /**
 - * Returns the exception thrown by the privileged computation that
 - * resulted in this <code>PrivilegedActionException</code>.
 - *
 - * <p>This method predates the general-purpose exception chaining facility.
 - * The {@link Throwable#getCause()} method is now the preferred means of
 - * obtaining this information.
 - *
 - * @return the exception thrown by the privileged computation that
 - * resulted in this <code>PrivilegedActionException</code>.
 - * @see PrivilegedExceptionAction
 - * @see AccessController#doPrivileged(PrivilegedExceptionAction)
 - * @see AccessController#doPrivileged(PrivilegedExceptionAction,
 - * AccessControlContext)
 - */
 - public Exception getException() {
 - return exception;
 - }
 - /**
 - * Returns the the cause of this exception (the exception thrown by
 - * the privileged computation that resulted in this
 - * <code>PrivilegedActionException</code>).
 - *
 - * @return the cause of this exception.
 - * @since 1.4
 - */
 - public Throwable getCause() {
 - return exception;
 - }
 - public String toString() {
 - String s = getClass().getName();
 - return (exception != null) ? (s + ": " + exception.toString()) : s;
 - }
 - }