--- old/src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java 2019-08-27 17:27:53.478324386 -0700 +++ new/src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java 2019-08-27 17:27:53.210324386 -0700 @@ -62,6 +62,7 @@ * @since 1.3 */ public class UndeclaredThrowableException extends RuntimeException { + @java.io.Serial static final long serialVersionUID = 330127114055056639L; /** @@ -108,6 +109,7 @@ * * @serialField undeclaredThrowable Throwable */ + @java.io.Serial private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField("undeclaredThrowable", Throwable.class) }; @@ -117,6 +119,7 @@ * 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); @@ -129,6 +132,7 @@ * 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());