/* * Copyright 2005 Bruce Snyder, Werner Guttmann, Ralf Joachim * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.castor.transactionmanager; import java.io.PrintStream; import java.io.PrintWriter; /** * An exception encapsulating an exception that occurs during the operation * to acquire a <tt>javax.transaction.TransactionManager</tt>. * * @author <a href="mailto:ferret AT frii DOT com">Bruce Snyder</a> * @author <a href="mailto:Werner.Guttmann@morganstanley.com">Werner Guttmann</a> * @author <a href="mailto:ralf DOT joachim AT syscon DOT eu">Ralf Joachim</a> * @version $Revision$ $Date: 2005-12-19 15:48:30 -0700 (Mon, 19 Dec 2005) $ * @since 1.0 */ public final class TransactionManagerAcquireException extends Exception { //-------------------------------------------------------------------------- /** SerialVersionUID. */ private static final long serialVersionUID = -4473907453496999735L; /** The cause for this exception. */ private Throwable _cause; /** * Creates a new TransactionManagerAcquireException with the given message. * * @param message the message for this Exception */ public TransactionManagerAcquireException(final String message) { super (message); } /** * Creates a new TransactionManagerAcquireException with the given message and cause. * * @param message The message for this exception. * @param cause A Throwable instance. */ public TransactionManagerAcquireException( final String message, final Throwable cause) { super(message); _cause = cause; } /** * Match the JDK 1.4 Throwable version of getCause() on JDK<1.4 systems. * * @return The throwable cause of this exception. */ public Throwable getCause() { return _cause; } /** * Print a stack trace to stderr. */ public void printStackTrace() { // Print the stack trace for this exception. super.printStackTrace(); if (_cause != null) { System.err.print("Caused by: "); _cause.printStackTrace(); } } /** * Print a stack trace to the specified PrintStream. * * @param s The PrintStream to print a stack trace to. */ public void printStackTrace(final PrintStream s) { // Print the stack trace for this exception. super.printStackTrace(s); if (_cause != null) { s.print("Caused by: "); _cause.printStackTrace(s); } } /** * Print a stack trace to the specified PrintWriter. * * @param w The PrintWriter to print a stack trace to. */ public void printStackTrace(final PrintWriter w) { // Print the stack trace for this exception. super.printStackTrace(w); if (_cause != null) { w.print("Caused by: "); _cause.printStackTrace(w); } } //-------------------------------------------------------------------------- }