Review Request JDK-8210721: Replace legacy serial exception field with Throwable::cause
Daniel Fuchs
daniel.fuchs at oracle.com
Mon Sep 17 10:14:05 UTC 2018
On 14/09/2018 18:46, mandy chung wrote:
> Jason also caught this accidental change in a different thread [1] and also
> suggests to call super.getCause since getCause is not final and may be
> overridden. The updated webrev is:
> http://cr.openjdk.java.net/~mchung/jdk12/webrevs/8210721/webrev.01/
Looks good to me Mandy!
best regards,
-- daniel
>
> Thanks
> Mandy
> [1]
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-September/055421.html
>> Obviously no need for another webrev, and no need for a new
>> fix if you pushed already...
>>
>> best regards,
>>
>> -- daniel
>>
>>
>> On 13/09/2018 19:44, mandy chung wrote:
>>> A few exception classes such as ExceptionInInitializerError,
>>> InvocationTargetException,
>>> etc were defined prior to the exception chaining facility and
>>> provides the API to get
>>> the cause of the exception. These classes keep its legacy serial
>>> field e.g.
>>> ExceptionInInitializerError::exception to get the serialization to
>>> work on older JDK version.
>>>
>>> During the review of JDK-8209553 [1], Peter and Joe suggest to remove
>>> this legacy
>>> serial field and implement the serialization using
>>> serialPersistentFields, readObject
>>> and writeObject. It turns out that these redundant fields were
>>> removed when the
>>> exception chaining support was initially implemented but it got
>>> reverted to fix
>>> JDK-4385429 since Throwable::setCause rejects any further change as
>>> Throwable::cause has been initialized to null.
>>>
>>> This patch removes these legacy serial field and stores the cause in
>>> Throwable::cause.
>>> It's essentially a redo for the fix for JDK-4385429.
>>>
>>> webrev:
>>> http://cr.openjdk.java.net/~mchung/jdk12/webrevs/8210721/webrev.00/
>>>
>>> Mandy
>>> [1]
>>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-August/054878.html
>>>
>>
>
More information about the core-libs-dev
mailing list