RFR JDK-8185582, Update Zip implementation to use Cleaner, not finalizers
Peter Levart
peter.levart at gmail.com
Fri Sep 29 21:14:33 UTC 2017
On 09/29/17 23:11, Peter Levart wrote:
> Hi Roger,
>
> On 09/29/17 22:55, Roger Riggs wrote:
>> fyi,
>>
>> The proposed[1] changes to FileInputStream and FileOutputStream
>> remove the finalize method
>> exposing Object.finalize (throws Throwable) to subclasses. We may
>> need retain
>> the finalize methods (with empty bodies) to mitigate source
>> compatibility.
>
> The problem is that empty finalize() method that throws anything other
> than Throwable will not compile.
Correction - it will compile (I was thinking about a method calling just
super.finalize() which is not empty, of course). Yes, this is the
solution to source compatibility.
>
> Regards, Peter
>
>>
>> Roger
>>
>>
>> [1]
>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2017-September/049351.html
>>
>> On 9/29/2017 4:49 PM, Xueming Shen wrote:
>>> On 9/29/17, 1:18 PM, Peter Levart wrote:
>>>> Hi Sherman,
>>>>
>>>> I looked into ZipFile as promised.
>>>>
>>>> One thing I noticed is that FinalizeZipFile.java test fails
>>>> compilation:
>>>>
>>>> test/jdk/java/util/zip/ZipFile/FinalizeZipFile.java:49: error:
>>>> unreported exception Throwable; must be caught or declared to be
>>>> thrown
>>>> super.finalize();
>>>> ^
>>>> (the overridden finalize() in InstrumentedZipFile should now
>>>> declare throws Throwable, since it overrides Object.finalize() and
>>>> not ZipFile.finalize() which is gone).
>>>>
>>>>
>>> Yes, it's the expected source incompatibility issue specified in the
>>> CSR request.
>>> I think I had it changed somewhere but obviously it's not in the
>>> webrev. Thanks
>>> for catching it. Yes, the test needs to update to be catch the
>>> throwable.
>>>
>>> Will return to the other comments later.
>>>
>>> Thanks!
>>> -sherman
>>>
>>>
>>
>
More information about the core-libs-dev
mailing list