001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.jms; 005 006 import java.io.PrintStream; 007 import java.io.PrintWriter; 008 009 import javax.jms.JMSException; 010 011 /** 012 * Extension of JMSException to allow cause chaining. 013 * @author Pavel Vlasov 014 * @revision $Revision$ 015 */ 016 public class JMSExceptionEx extends JMSException { 017 private Throwable cause; 018 019 public Throwable getCause() { 020 return cause; 021 } 022 023 public JMSExceptionEx(String message) { 024 super(message); 025 } 026 027 public JMSExceptionEx(String message, Throwable cause) { 028 super(message); 029 this.cause=cause; 030 } 031 032 public JMSExceptionEx(Throwable cause) { 033 super("Caused by: "+cause); 034 this.cause=cause; 035 } 036 037 public void printStackTrace() { 038 super.printStackTrace(); 039 if (cause!=null) { 040 System.err.println("=== NESTED EXCEPTION ==="); 041 cause.printStackTrace(); 042 } 043 } 044 045 public void printStackTrace(PrintWriter p) { 046 super.printStackTrace(p); 047 if (cause!=null) { 048 p.println("=== NESTED EXCEPTION ==="); 049 cause.printStackTrace(p); 050 } 051 } 052 053 public void printStackTrace(PrintStream p) { 054 super.printStackTrace(p); 055 if (cause!=null) { 056 p.println("=== NESTED EXCEPTION ==="); 057 cause.printStackTrace(p); 058 } 059 } 060 061 }