----- Mail original ----- > De: "Peter Levart" <peter.lev...@gmail.com> > À: "Roger Riggs" <roger.ri...@oracle.com>, "core-libs-dev" > <core-libs-dev@openjdk.java.net> > Envoyé: Vendredi 29 Septembre 2017 23:14:33 > Objet: Re: RFR JDK-8185582, Update Zip implementation to use Cleaner, not > finalizers
> 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. > Overriding finalize() will make the object not to be GCed as soon as it should. > >> >> Regards, Peter >> Rémi >>> >>> 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 >>>> >>>> >>>