RFR 9: 8165641 : Deprecate Object.finalize
Roger Riggs
roger.riggs at oracle.com
Wed Mar 15 01:41:31 UTC 2017
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
>>
>>
More information about the core-libs-dev
mailing list