1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
/* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: MarshalException.java,v 1.5 2005/05/10 15:47:42 mullan Exp $ */ package javax.xml.crypto; import java.io.PrintStream; import java.io.PrintWriter; import javax.xml.crypto.dsig.Manifest; import javax.xml.crypto.dsig.XMLSignature; import javax.xml.crypto.dsig.XMLSignatureFactory; import javax.xml.crypto.dsig.keyinfo.KeyInfo; import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory; /** * Indicates an exceptional condition that occured during the XML * marshalling or unmarshalling process. * * <p>A <code>MarshalException</code> can contain a cause: another * throwable that caused this <code>MarshalException</code> to get thrown. * * @author Sean Mullan * @author JSR 105 Expert Group * @since 1.6 * @see XMLSignature#sign(XMLSignContext) * @see XMLSignatureFactory#unmarshalXMLSignature(XMLValidateContext) */ public class MarshalException extends Exception { private static final long serialVersionUID = -863185580332643547L; /** * The throwable that caused this exception to get thrown, or null if this * exception was not caused by another throwable or if the causative * throwable is unknown. * * @serial */ private Throwable cause; /** * Constructs a new <code>MarshalException</code> with * <code>null</code> as its detail message. */ public MarshalException() { super(); } /** * Constructs a new <code>MarshalException</code> with the specified * detail message. * * @param message the detail message */ public MarshalException(String message) { super(message); } /** * Constructs a new <code>MarshalException</code> with the * specified detail message and cause. * <p>Note that the detail message associated with * <code>cause</code> is <i>not</i> automatically incorporated in * this exception's detail message. * * @param message the detail message * @param cause the cause (A <tt>null</tt> value is permitted, and * indicates that the cause is nonexistent or unknown.) */ public MarshalException(String message, Throwable cause) { super(message); this.cause = cause; } /** * Constructs a new <code>MarshalException</code> with the specified cause * and a detail message of <code>(cause==null ? null : cause.toString()) * </code> (which typically contains the class and detail message of * <code>cause</code>). * * @param cause the cause (A <tt>null</tt> value is permitted, and * indicates that the cause is nonexistent or unknown.) */ public MarshalException(Throwable cause) { super(cause==null ? null : cause.toString()); this.cause = cause; } /** * Returns the cause of this <code>MarshalException</code> or * <code>null</code> if the cause is nonexistent or unknown. (The * cause is the throwable that caused this * <code>MarshalException</code> to get thrown.) * * @return the cause of this <code>MarshalException</code> or * <code>null</code> if the cause is nonexistent or unknown. */ public Throwable getCause() { return cause; } /** * Prints this <code>MarshalException</code>, its backtrace and * the cause's backtrace to the standard error stream. */ public void printStackTrace() { super.printStackTrace(); //XXX print backtrace of cause } /** * Prints this <code>MarshalException</code>, its backtrace and * the cause's backtrace to the specified print stream. * * @param s <code>PrintStream</code> to use for output */ public void printStackTrace(PrintStream s) { super.printStackTrace(s); //XXX print backtrace of cause } /** * Prints this <code>MarshalException</code>, its backtrace and * the cause's backtrace to the specified print writer. * * @param s <code>PrintWriter</code> to use for output */ public void printStackTrace(PrintWriter s) { super.printStackTrace(s); //XXX print backtrace of cause } }