Hi Stuart,

Thanks, I'll remove the unnecessary @SuppressWarnings in the next update.

Roger


On 3/13/17 6:57 PM, Stuart Marks wrote:
As Dr Deprecator, I approve of this change. :-)

One small comment. Deprecation warnings aren't issued at the use site of a deprecated API if the use site itself is deprecated. Thus, the @SuppressWarnings annotation isn't necessary in the following diff hunk:



--- old/src/java.base/share/classes/java/io/FileInputStream.java 2017-03-10 16:10:45.735018307 -0500 +++ new/src/java.base/share/classes/java/io/FileInputStream.java 2017-03-10 16:10:45.411187490 -0500
@@ -413,9 +413,13 @@
* Ensures that the <code>close</code> method of this file input stream is
      * called when there are no more references to it.
      *
+     * @deprecated Finalization is deprecated and should not be used.
+ * See {@link Object#finalize} for the explanation and recommended replacement.
      * @exception  IOException  if an I/O error occurs.
      * @see        java.io.FileInputStream#close()
      */
+    @Deprecated(since="9")
+    @SuppressWarnings("deprecation")
     protected void finalize() throws IOException {
         if ((fd != null) &&  (fd != FileDescriptor.in)) {
             /* if fd is shared, the references in FileDescriptor



There are several other similar occurrences.

Thanks,

s'marks



On 3/10/17 1:40 PM, Roger Riggs wrote:
Finalizers are inherently problematic and their use can lead to performance issues,
deadlocks, hangs, and other problematic behavior.

The problems have been accumulating for many years and the first step to
deprecate Object.finalize and the overrides in the JDK to communicate the issues, recommend alternatives, and motivate changes where finalization is
currently used.

The behavior of finalization nor any uses of finalize are not modified by this
change.
Most of the changes are to suppress compilation warnings within the JDK.

Please review and comment.

Webrev:
http://cr.openjdk.java.net/~rriggs/webrev-finalize-deprecate-8165641/

Issue:
   https://bugs.openjdk.java.net/browse/JDK-8165641

Thanks, Roger



Reply via email to