equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
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 |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
48 */ |
48 */ |
49 public class ExceptionInInitializerError extends LinkageError { |
49 public class ExceptionInInitializerError extends LinkageError { |
50 /** |
50 /** |
51 * Use serialVersionUID from JDK 1.1.X for interoperability |
51 * Use serialVersionUID from JDK 1.1.X for interoperability |
52 */ |
52 */ |
|
53 @java.io.Serial |
53 private static final long serialVersionUID = 1521711792217232256L; |
54 private static final long serialVersionUID = 1521711792217232256L; |
54 |
55 |
55 /** |
56 /** |
56 * Constructs an <code>ExceptionInInitializerError</code> with |
57 * Constructs an <code>ExceptionInInitializerError</code> with |
57 * <code>null</code> as its detail message string and with no saved |
58 * <code>null</code> as its detail message string and with no saved |
107 /** |
108 /** |
108 * Serializable fields for ExceptionInInitializerError. |
109 * Serializable fields for ExceptionInInitializerError. |
109 * |
110 * |
110 * @serialField exception Throwable |
111 * @serialField exception Throwable |
111 */ |
112 */ |
|
113 @java.io.Serial |
112 private static final ObjectStreamField[] serialPersistentFields = { |
114 private static final ObjectStreamField[] serialPersistentFields = { |
113 new ObjectStreamField("exception", Throwable.class) |
115 new ObjectStreamField("exception", Throwable.class) |
114 }; |
116 }; |
115 |
117 |
116 /* |
118 /* |
120 * |
122 * |
121 * The getException and getCause method returns the private "exception" |
123 * The getException and getCause method returns the private "exception" |
122 * field in the older implementation and ExceptionInInitializerError::cause |
124 * field in the older implementation and ExceptionInInitializerError::cause |
123 * was set to null. |
125 * was set to null. |
124 */ |
126 */ |
|
127 @java.io.Serial |
125 private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { |
128 private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { |
126 ObjectInputStream.GetField fields = s.readFields(); |
129 ObjectInputStream.GetField fields = s.readFields(); |
127 Throwable exception = (Throwable) fields.get("exception", null); |
130 Throwable exception = (Throwable) fields.get("exception", null); |
128 if (exception != null) { |
131 if (exception != null) { |
129 setCause(exception); |
132 setCause(exception); |
132 |
135 |
133 /* |
136 /* |
134 * To maintain compatibility with older implementation, write a serial |
137 * To maintain compatibility with older implementation, write a serial |
135 * "exception" field with the cause as the value. |
138 * "exception" field with the cause as the value. |
136 */ |
139 */ |
|
140 @java.io.Serial |
137 private void writeObject(ObjectOutputStream out) throws IOException { |
141 private void writeObject(ObjectOutputStream out) throws IOException { |
138 ObjectOutputStream.PutField fields = out.putFields(); |
142 ObjectOutputStream.PutField fields = out.putFields(); |
139 fields.put("exception", super.getCause()); |
143 fields.put("exception", super.getCause()); |
140 out.writeFields(); |
144 out.writeFields(); |
141 } |
145 } |