KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exolab > jms > net > proxy > RemoteInvocationException


1 /**
2  * Redistribution and use of this software and associated documentation
3  * ("Software"), with or without modification, are permitted provided
4  * that the following conditions are met:
5  *
6  * 1. Redistributions of source code must retain copyright
7  * statements and notices. Redistributions must also contain a
8  * copy of this document.
9  *
10  * 2. Redistributions in binary form must reproduce the
11  * above copyright notice, this list of conditions and the
12  * following disclaimer in the documentation and/or other
13  * materials provided with the distribution.
14  *
15  * 3. The name "Exolab" must not be used to endorse or promote
16  * products derived from this Software without prior written
17  * permission of Exoffice Technologies. For written permission,
18  * please contact info@exolab.org.
19  *
20  * 4. Products derived from this Software may not be called "Exolab"
21  * nor may "Exolab" appear in their names without prior written
22  * permission of Exoffice Technologies. Exolab is a registered
23  * trademark of Exoffice Technologies.
24  *
25  * 5. Due credit should be given to the Exolab Project
26  * (http://www.exolab.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
29  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39  * OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Copyright 2003-2004 (C) Exoffice Technologies Inc. All Rights Reserved.
42  *
43  * $Id: RemoteInvocationException.java,v 1.1 2004/11/26 01:51:05 tanderson Exp $
44  */

45 package org.exolab.jms.net.proxy;
46
47 import java.io.PrintStream JavaDoc;
48 import java.io.PrintWriter JavaDoc;
49
50
51 /**
52  * A <code>RuntimeException</code> when a remote invocation generates an
53  * exception which is not declared by the caller
54  *
55  * @author <a HREF="mailto:tma@netspace.net.au">Tim Anderson</a>
56  * @version $Revision: 1.1 $ $Date: 2004/11/26 01:51:05 $
57  * @see Proxy
58  */

59 public class RemoteInvocationException extends RuntimeException JavaDoc {
60
61     /**
62      * The thrown target exception
63      */

64     private Throwable JavaDoc _target;
65
66     /**
67      * Serialization ID
68      */

69     private static final long serialVersionUID = 1L;
70
71
72     /**
73      * Construct a new <code>RemoteInvocationException</code>
74      */

75     public RemoteInvocationException() {
76     }
77
78     /**
79      * Construct a new <code>RemoteInvocationException</code> with no target
80      * exception
81      *
82      * @param detail the detail message
83      */

84     public RemoteInvocationException(String JavaDoc detail) {
85         super(detail);
86     }
87
88     /**
89      * Construct a new <code>RemoteInvocationException</code> with a target
90      * exception
91      *
92      * @param target the target exception
93      */

94     public RemoteInvocationException(Throwable JavaDoc target) {
95         _target = target;
96     }
97
98     /**
99      * Construct a new <code>RemoteInvocationException</code> with a detail
100      * message and target exception
101      *
102      * @param detail the detail message
103      * @param target the target exception
104      */

105     public RemoteInvocationException(String JavaDoc detail, Throwable JavaDoc target) {
106         super(detail);
107         _target = target;
108     }
109
110     /**
111      * Get the thrown target exception
112      *
113      * @return the target exception
114      */

115     public Throwable JavaDoc getTargetException() {
116         return _target;
117     }
118
119     /**
120      * Writes the stack trace of the thrown target exception to the specified
121      * print stream.
122      *
123      * @param stream the stream to write to
124      */

125     public void printStackTrace(PrintStream JavaDoc stream) {
126         synchronized (stream) {
127             if (_target != null) {
128                 stream.print(getClass().getName() + ": ");
129                 _target.printStackTrace(stream);
130             } else {
131                 super.printStackTrace(stream);
132             }
133         }
134     }
135
136     /**
137      * Writes the stack trace of the thrown target exception to the specified
138      * print writer.
139      *
140      * @param writer the writer to write to
141      */

142     public void printStackTrace(PrintWriter JavaDoc writer) {
143         synchronized (writer) {
144             if (_target != null) {
145                 writer.print(getClass().getName() + ": ");
146                 _target.printStackTrace(writer);
147             } else {
148                 super.printStackTrace(writer);
149             }
150         }
151     }
152
153 }
154
Popular Tags