RFR: 8305762: FileInputStream and FileOutputStream implSpec should be corrected or removed

Roger Riggs rriggs at openjdk.org
Fri Apr 14 13:42:36 UTC 2023


On Fri, 14 Apr 2023 07:54:39 GMT, Alan Bateman <alanb at openjdk.org> wrote:

>> With the removal of the AltFinalizer mechanism from `FileInputStream` and `FileOutputStream` in [JDK-8192939](https://bugs.openjdk.org/browse/JDK-8192939), this portion of the Implementation Requirement in the class JavaDoc is no longer true:
>> 
>>> If this FileOutputStream has been subclassed and the close() method has been overridden, the close() method will be called when the FileInputStream is unreachable."
>> 
>> The class doc, and the doc for close(), are updated to correctly reflect current behavior, and guidance for subclasses is clarified.
>
> src/java.base/share/classes/java/io/FileInputStream.java line 50:
> 
>> 48:  * Subclasses are responsible for the cleanup of resources acquired by the subclass.
>> 49:  * Subclasses requiring that resource cleanup take place after a stream becomes
>> 50:  * unreachable should use the {@link java.lang.ref.Cleaner} mechanism.
> 
> This is in the style of an API note for implementors so implSpec is appropriate here.

Perhaps add "or other mechanisms" or similar advice.  
There should be some room to use other kinds of queues or polling to do the cleanup.
For example, there are some maps that check for cleanups when doing other operations.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13437#discussion_r1166849142


More information about the core-libs-dev mailing list