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