Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8282697

Add constructors take a cause to InvalidObjectException and InvalidClassException

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 19
    • core-libs
    • None
    • source
    • minimal
    • Java API
    • SE

      Summary

      Add cause-taking constructors to InvalidObjectException and InvalidClassException, along with their superclass ObjectStreamException.

      Problem

      The exception classes in question repeatedly have their initCause methods called. That functionality is better achieved passing a cause into the constructor.

      Solution

      Add the overloaded constructors in question.

      Specification

      -

      -- a/src/java.base/share/classes/java/io/InvalidClassException.java
      +++ b/src/java.base/share/classes/java/io/InvalidClassException.java
      @@ -73,6 +73,30 @@ public class InvalidClassException extends ObjectStreamException {
               classname = cname;
           }
      
      +    /**
      +     * Report an InvalidClassException for the reason and cause specified.
      +     *
      +     * @param reason  String describing the reason for the exception.
      +     * @param cause the cause
      +     * @since 19
      +     */
      +    public InvalidClassException(String reason, Throwable cause) {
      +        super(reason, cause);
      +    }
      +
      +    /**
      +     * Report an InvalidClassException for the reason and cause specified.
      +     *
      +     * @param cname   a String naming the invalid class.
      +     * @param reason  String describing the reason for the exception.
      +     * @param cause the cause
      +     * @since 19
      +     */
      +    public InvalidClassException(String cname, String reason, Throwable cause) {
      +        super(reason, cause);
      +        classname = cname;
      +    }
      +
           /**
            * Produce the message and include the classname, if present.
            */
      
      --- a/src/java.base/share/classes/java/io/InvalidObjectException.java
      +++ b/src/java.base/share/classes/java/io/InvalidObjectException.java
      @@ -48,4 +48,18 @@ public class InvalidObjectException extends ObjectStreamException {
           public  InvalidObjectException(String reason) {
               super(reason);
           }
      +
      +    /**
      +     * Constructs an {@code InvalidObjectException} with the given
      +     * reason and cause.
      +     *
      +     * @param reason Detailed message explaining the reason for the failure.
      +     * @param cause the cause
      +     *
      +     * @see ObjectInputValidation
      +     * @since 19
      +     */
      +    public  InvalidObjectException(String reason, Throwable cause) {
      +        super(reason, cause);
      +    }
       }
      
      --- a/src/java.base/share/classes/java/io/ObjectStreamException.java
      +++ b/src/java.base/share/classes/java/io/ObjectStreamException.java
      @@ -44,10 +44,32 @@ public abstract class ObjectStreamException extends IOException {
               super(message);
           }
      
      +    /**
      +     * Create an ObjectStreamException with the specified message and
      +     * cause.
      +     *
      +     * @param message the detailed message for the exception
      +     * @param cause the cause
      +     * @since 19
      +     */
      +    protected ObjectStreamException(String message, Throwable cause) {
      +        super(message, cause);
      +    }
      +
           /**
            * Create an ObjectStreamException.
            */
           protected ObjectStreamException() {
               super();
           }
      +
      +    /**
      +     * Create an ObjectStreamException with the specified cause.
      +     *
      +     * @param cause the cause
      +     * @since 19
      +     */
      +    protected ObjectStreamException(Throwable cause) {
      +        super(cause);
      +    }
       }

            darcy Joe Darcy
            darcy Joe Darcy
            Roger Riggs
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: