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 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
/* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: URIReferenceException.java,v 1.4 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.keyinfo.RetrievalMethod; /** * Indicates an exceptional condition thrown while dereferencing a * {@link URIReference}. * * <p>A <code>URIReferenceException</code> can contain a cause: another * throwable that caused this <code>URIReferenceException</code> to get thrown. * * @author Sean Mullan * @author JSR 105 Expert Group * @since 1.6 * @see URIDereferencer#dereference(URIReference, XMLCryptoContext) * @see RetrievalMethod#dereference(XMLCryptoContext) */ public class URIReferenceException extends Exception { private static final long serialVersionUID = 7173469703932561419L; /** * 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; private URIReference uriReference; /** * Constructs a new <code>URIReferenceException</code> with * <code>null</code> as its detail message. */ public URIReferenceException() { super(); } /** * Constructs a new <code>URIReferenceException</code> with the specified * detail message. * * @param message the detail message */ public URIReferenceException(String message) { super(message); } /** * Constructs a new <code>URIReferenceException</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 URIReferenceException(String message, Throwable cause) { super(message); this.cause = cause; } /** * Constructs a new <code>URIReferenceException</code> with the * specified detail message, cause and <code>URIReference</code>. * <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.) * @param uriReference the <code>URIReference</code> that was being * dereferenced when the error was encountered * @throws NullPointerException if <code>uriReference</code> is * <code>null</code> */ public URIReferenceException(String message, Throwable cause, URIReference uriReference) { this(message, cause); if (uriReference == null) { throw new NullPointerException("uriReference cannot be null"); } this.uriReference = uriReference; } /** * Constructs a new <code>URIReferenceException</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 URIReferenceException(Throwable cause) { super(cause==null ? null : cause.toString()); this.cause = cause; } /** * Returns the <code>URIReference</code> that was being dereferenced * when the exception was thrown. * * @return the <code>URIReference</code> that was being dereferenced * when the exception was thrown, or <code>null</code> if not specified */ public URIReference getURIReference() { return uriReference; } /** * Returns the cause of this <code>URIReferenceException</code> or * <code>null</code> if the cause is nonexistent or unknown. (The * cause is the throwable that caused this * <code>URIReferenceException</code> to get thrown.) * * @return the cause of this <code>URIReferenceException</code> or * <code>null</code> if the cause is nonexistent or unknown. */ public Throwable getCause() { return cause; } /** * Prints this <code>URIReferenceException</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>URIReferenceException</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>URIReferenceException</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 } }