Request for review: Rework cause-chaining in Exceptions was:JDK 8 code review request for 6380161 (reflect) Exception from newInstance() not chained to cause.

Sebastian Sickelmann sebastian.sickelmann at gmx.de
Wed Aug 17 21:00:42 UTC 2011


Am 17.08.2011 03:11, schrieb joe.darcy at oracle.com:
> Hello.
>
> On 8/14/2011 11:17 PM, Sebastian Sickelmann wrote:
>> Hi,
>>
>> some time ago, i wrote[5] with Joe and David about advancing some 
>> exception-types to the 4 standard ctors.
>>
>> The first Exception i have looked at was InternalError and now(after 
>> some struggeling with gnumake and hg) my patches for reviewing are 
>> ready.
>>
>> I uploaded them at [4]
>>
>> I split the changes into 3 parts.
>>
>> 1. Added 2 ctors to InternalError and VirtualMachineError****[1]
>> 2. Use the two ctors of InternalError****[2] (based on [1])
>> 3. Chain Rootcause into InternalError**[3] (based also on [1])
>>
>> I think part 1 and 2 are uncritical. Part 3 is more critical because 
>> it changes behavior (exception-chaining). But i don't think that part 
>> 3 is unimportable, because in case of an InternalError (use should 
>> not be able to recover) there shouldn't be a problem with a little 
>> longer exception-chain.
>>
>> Is there someone who what to sponsor this or parts of it?
>>
>> [1] https://bugs.openjdk.java.net/attachment.cgi?id=233
>> [2] https://bugs.openjdk.java.net/attachment.cgi?id=234
>> [3] https://bugs.openjdk.java.net/attachment.cgi?id=235
>> [4] https://bugs.openjdk.java.net/show_bug.cgi?id=100201
>> [5] 
>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2011-August/007304.html 
>>
>
> I am willing to sponsor this work and I've filed bug 7080020 "Add 
> conventional constructors to InternalError" for it.
>
> For adding constructors to InternalError (or VirtualMachineError), the 
> push that adds the constructors should include some usage of them.  
> Therefore, at least portions of 1) and 2) above should be combined.  
> If there are easy to find usages of a cause for VirtualMachineError, 
> then those should be included at the same time any new constructors 
> are added there.
VirtualMachineError is changed because it is the abstract super class of 
InternalError so use of the VirtualMachineError ctors is inside of the 
InternalError ctors
>
> There is some currently Oracle-internal paperwork which needs to be 
> filed to make an API change; I'll file that paperwork once there is 
> verification on whether updates to both InternalError and 
> VirtualMachineError will be included in this round of work.  The 
> paperwork needs to be approved before the change is pushed and 
> typically takes a few days to be processed.
>
OK. That much work for just chaining up exceptions.
I am happy that i needn't to do this paperwork. I hope it's virtual 
paperwork. ;-)

I will post the change in 2 webrevs than.
One for the smaller part (Change of the InternalError itself + some 
small changes "initCause usage to ctor parameter")
And one for the bigger part (Chain all uses of InternalError with the 
root-cause if any root-cause exists)

i must rebase it again. Will post webrev url at the other thread in short.
> Cheers,
>
> -Joe
>
-- Sebastian



More information about the core-libs-dev mailing list