| MockEjbSystemException.java |
package org.mockejb;
import java.io.PrintWriter;
import java.io.StringWriter;
/**
* Indicates system error in MockEJB framework. This is not
* the same with EJB system exception which can be any
* RuntimeException. MockEjbSystemException signifies the
* failure in one of the MockEJB classes.
*
* Support exception chaining for 1.3 users just in case.
*
* @author Alexander Ananiev
*/
public class MockEjbSystemException extends RuntimeException {
private Throwable cause;
/**
* Creates a new instance of <code>MockEjbSystemException</code>.
* Appends the error stack of the cause to the message to remain 1.3 compliant.
* @param message error message
* @param cause cause of the exception
*/
public MockEjbSystemException( String message, Throwable cause ) {
super( message +"\nCause:\n" + stackToString( cause ));
this.cause = cause;
}
public MockEjbSystemException( String message ){
super( message );
}
public MockEjbSystemException( Throwable cause ){
this( "", cause );
}
/**
* Returns the cause of this throwable or null if the cause is nonexistent
* or unknown.
*
* @return the cause of this throwable or null if the cause is
* nonexistent or unknown
*
*/
public Throwable getCause() {
return cause;
}
private static String stackToString( Throwable e ) {
StringWriter stringWriter = new StringWriter();
e.printStackTrace( new PrintWriter( stringWriter ) );
return stringWriter.toString();
}
}