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





Reply via email to