History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/java/rmi/RemoteException.java (1 of 18352 files). Show all

Unified · Split

java/pkg/java/rmi/RemoteException.java+122−0
@@ -0,0 +1,122 @@
1+/*
2+ * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+package java.rmi;
27+
28+/**
29+ * A <code>RemoteException</code> is the common superclass for a number of
30+ * communication-related exceptions that may occur during the execution of a
31+ * remote method call. Each method of a remote interface, an interface that
32+ * extends <code>java.rmi.Remote</code>, must list
33+ * <code>RemoteException</code> in its throws clause.
34+ *
35+ * <p>As of release 1.4, this exception has been retrofitted to conform to
36+ * the general purpose exception-chaining mechanism. The "wrapped remote
37+ * exception" that may be provided at construction time and accessed via
38+ * the public {@link #detail} field is now known as the <i>cause</i>, and
39+ * may be accessed via the {@link Throwable#getCause()} method, as well as
40+ * the aforementioned "legacy field."
41+ *
42+ * <p>Invoking the method {@link Throwable#initCause(Throwable)} on an
43+ * instance of <code>RemoteException</code> always throws {@link
44+ * IllegalStateException}.
45+ *
46+ * @author Ann Wollrath
47+ * @since JDK1.1
48+ */
49+public class RemoteException extends java.io.IOException {
50+
51+ /* indicate compatibility with JDK 1.1.x version of class */
52+ private static final long serialVersionUID = -5148567311918794206L;
53+
54+ /**
55+ * The cause of the remote exception.
56+ *
57+ * <p>This field predates the general-purpose exception chaining facility.
58+ * The {@link Throwable#getCause()} method is now the preferred means of
59+ * obtaining this information.
60+ *
61+ * @serial
62+ */
63+ public Throwable detail;
64+
65+ /**
66+ * Constructs a <code>RemoteException</code>.
67+ */
68+ public RemoteException() {
69+ initCause(null); // Disallow subsequent initCause
70+ }
71+
72+ /**
73+ * Constructs a <code>RemoteException</code> with the specified
74+ * detail message.
75+ *
76+ * @param s the detail message
77+ */
78+ public RemoteException(String s) {
79+ super(s);
80+ initCause(null); // Disallow subsequent initCause
81+ }
82+
83+ /**
84+ * Constructs a <code>RemoteException</code> with the specified detail
85+ * message and cause. This constructor sets the {@link #detail}
86+ * field to the specified <code>Throwable</code>.
87+ *
88+ * @param s the detail message
89+ * @param cause the cause
90+ */
91+ public RemoteException(String s, Throwable cause) {
92+ super(s);
93+ initCause(null); // Disallow subsequent initCause
94+ detail = cause;
95+ }
96+
97+ /**
98+ * Returns the detail message, including the message from the cause, if
99+ * any, of this exception.
100+ *
101+ * @return the detail message
102+ */
103+ public String getMessage() {
104+ if (detail == null) {
105+ return super.getMessage();
106+ } else {
107+ return super.getMessage() + "; nested exception is: \n\t" +
108+ detail.toString();
109+ }
110+ }
111+
112+ /**
113+ * Returns the cause of this exception. This method returns the value
114+ * of the {@link #detail} field.
115+ *
116+ * @return the cause, which may be <tt>null</tt>.
117+ * @since 1.4
118+ */
119+ public Throwable getCause() {
120+ return detail;
121+ }
122+}