luetzkendorf 2005/05/27 10:18:49 Modified: src/share/org/apache/slide/common SlideException.java Log: new methods initCause and getCause to allow chaning of exception (patch by Thomas Bellembois) Revision Changes Path 1.11 +30 -9 jakarta-slide/src/share/org/apache/slide/common/SlideException.java Index: SlideException.java =================================================================== RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/SlideException.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- SlideException.java 28 Jul 2004 09:38:11 -0000 1.10 +++ SlideException.java 27 May 2005 17:18:49 -0000 1.11 @@ -41,6 +41,7 @@ private static final int DEBUG = Logger.DEBUG; private static Logger LOGGER = Domain.getLogger(); + private Throwable cause = this; // ----------------------------------------------------------- Constructors @@ -67,11 +68,31 @@ Domain.warn(message); } - if (LOGGER.isEnabled(CHANNEL, DEBUG)) { - StringWriter sw = new StringWriter(); - printStackTrace( new PrintWriter(sw, true) ); //autoFlush=true - LOGGER.log( sw.toString(), CHANNEL, DEBUG ); - } + if (LOGGER.isEnabled(CHANNEL, DEBUG)) { + StringWriter sw = new StringWriter(); + printStackTrace( new PrintWriter(sw, true) ); //autoFlush=true + LOGGER.log( sw.toString(), CHANNEL, DEBUG ); + } + } + + /** + * Set the cause of the exception + */ + public Throwable initCause(Throwable cause) { + if (this.cause != this) + throw new IllegalStateException("Can't overwrite cause"); + if (cause == this) + throw new IllegalArgumentException("Self-causation not permitted"); + this.cause = cause; + return this; + } + + + /** + * Get the cause of the exception + */ + public Throwable getCause() { + return (cause==this ? null : cause); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]