< prev index next >

## src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java

Print this page

    *** 1,7 ***
      /*
    !  * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
       * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       *
       * This code is free software; you can redistribute it and/or modify it
       * under the terms of the GNU General Public License version 2 only, as
       * published by the Free Software Foundation.  Oracle designates this
    --- 1,7 ---
      /*
    !  * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
       * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       *
       * This code is free software; you can redistribute it and/or modify it
       * under the terms of the GNU General Public License version 2 only, as
       * published by the Free Software Foundation.  Oracle designates this

    *** 105,34 ***
          }

          /**
           * Serializable fields for UndeclaredThrowableException.
           *
    !      * @serialField undeclaredThrowable Throwable
           */
          @java.io.Serial
          private static final ObjectStreamField[] serialPersistentFields = {
              new ObjectStreamField("undeclaredThrowable", Throwable.class)
          };

    !     /*
           * Reconstitutes the UndeclaredThrowableException instance from a stream
           * and initialize the cause properly when deserializing from an older
           * version.
           */
          @java.io.Serial
          private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
              ObjectInputStream.GetField fields = s.readFields();
              Throwable exception = (Throwable) fields.get("undeclaredThrowable", null);
              if (exception != null) {
                  SharedSecrets.getJavaLangAccess().setCause(this, exception);
              }
          }

    !     /*
           * To maintain compatibility with older implementation, write a serial
           * "ex" field with the cause as the value.
           */
          @java.io.Serial
          private void writeObject(ObjectOutputStream out) throws IOException {
              ObjectOutputStream.PutField fields = out.putFields();
              fields.put("undeclaredThrowable", super.getCause());
    --- 105,41 ---
          }

          /**
           * Serializable fields for UndeclaredThrowableException.
           *
    !      * @serialField undeclaredThrowable Throwable the undeclared exception
           */
          @java.io.Serial
          private static final ObjectStreamField[] serialPersistentFields = {
              new ObjectStreamField("undeclaredThrowable", Throwable.class)
          };

    !     /**
           * Reconstitutes the UndeclaredThrowableException instance from a stream
           * and initialize the cause properly when deserializing from an older
           * version.
    +      *
    +      * @param  s the {@code ObjectInputStream} from which data is read
    +      * @throws IOException if an I/O error occurs
    +      * @throws ClassNotFoundException if a serialized class cannot be loaded
           */
          @java.io.Serial
          private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
              ObjectInputStream.GetField fields = s.readFields();
              Throwable exception = (Throwable) fields.get("undeclaredThrowable", null);
              if (exception != null) {
                  SharedSecrets.getJavaLangAccess().setCause(this, exception);
              }
          }

    !     /**
           * To maintain compatibility with older implementation, write a serial
           * "ex" field with the cause as the value.
    +      *
    +      * @param  out the {@code ObjectOutputStream} to which data is written
    +      * @throws IOException if an I/O error occurs
           */
          @java.io.Serial
          private void writeObject(ObjectOutputStream out) throws IOException {
              ObjectOutputStream.PutField fields = out.putFields();
              fields.put("undeclaredThrowable", super.getCause());

< prev index next >