rt/emul/compact/src/main/java/java/io/WriteAbortedException.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 26 Feb 2013 16:54:16 +0100
changeset 772 d382dacfd73f
parent 601 emul/compact/src/main/java/java/io/WriteAbortedException.java@5198affdb915
permissions -rw-r--r--
Moving modules around so the runtime is under one master pom and can be built without building other modules that are in the repository
     1 /*
     2  * Copyright (c) 1996, 2005, 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.io;
    27 
    28 /**
    29  * Signals that one of the ObjectStreamExceptions was thrown during a
    30  * write operation.  Thrown during a read operation when one of the
    31  * ObjectStreamExceptions was thrown during a write operation.  The
    32  * exception that terminated the write can be found in the detail
    33  * field. The stream is reset to it's initial state and all references
    34  * to objects already deserialized are discarded.
    35  *
    36  * <p>As of release 1.4, this exception has been retrofitted to conform to
    37  * the general purpose exception-chaining mechanism.  The "exception causing
    38  * the abort" that is provided at construction time and
    39  * accessed via the public {@link #detail} field is now known as the
    40  * <i>cause</i>, and may be accessed via the {@link Throwable#getCause()}
    41  * method, as well as the aforementioned "legacy field."
    42  *
    43  * @author  unascribed
    44  * @since   JDK1.1
    45  */
    46 public class WriteAbortedException extends ObjectStreamException {
    47     private static final long serialVersionUID = -3326426625597282442L;
    48 
    49     /**
    50      * Exception that was caught while writing the ObjectStream.
    51      *
    52      * <p>This field predates the general-purpose exception chaining facility.
    53      * The {@link Throwable#getCause()} method is now the preferred means of
    54      * obtaining this information.
    55      *
    56      * @serial
    57      */
    58     public Exception detail;
    59 
    60     /**
    61      * Constructs a WriteAbortedException with a string describing
    62      * the exception and the exception causing the abort.
    63      * @param s   String describing the exception.
    64      * @param ex  Exception causing the abort.
    65      */
    66     public WriteAbortedException(String s, Exception ex) {
    67         super(s);
    68         initCause(null);  // Disallow subsequent initCause
    69         detail = ex;
    70     }
    71 
    72     /**
    73      * Produce the message and include the message from the nested
    74      * exception, if there is one.
    75      */
    76     public String getMessage() {
    77         if (detail == null)
    78             return super.getMessage();
    79         else
    80             return super.getMessage() + "; " + detail.toString();
    81     }
    82 
    83     /**
    84      * Returns the exception that terminated the operation (the <i>cause</i>).
    85      *
    86      * @return  the exception that terminated the operation (the <i>cause</i>),
    87      *          which may be null.
    88      * @since   1.4
    89      */
    90     public Throwable getCause() {
    91         return detail;
    92     }
    93 }