Charles,
Yes - all three streams will now be closed. Previous to 7082769, when
any of the streams calls close(), the underlying filedescriptor used get
closed out via the native close0() call.
A list of Closeables is maintained by FileDescriptor.
regards,
Sean.
On 01/11/2011 13:54, Charles Lee wrote:
On 10/29/2011 02:13 AM, Seán Coffey wrote:
This is a second stab at cleaning up the close() and finalize()
methods for FileInputStream / FileOutputStream / RandomAccessFile
classes so that all parents/referents sharing the same native
FileDescriptor are closed out correctly.
With Alan's assistance, we have a better implementation in place
where we avoid the use of counters and instead cycle through a list
of shared closeables when a FileDescriptor is being shared.
Bug report (not visible yet)
http://bugs.sun.com/view_bug.do?bug_id=7105952
webrev : http://cr.openjdk.java.net/~coffeys/webrev.7105952/
regards,
Sean.
Hi Sean,
If we have 3 FileInputStream which share the same FileDescriptor, and
one of the FileInputStream calls its own close. Will other 2
FileInputStream close?
I see fd.closeAll is called in the close of FileInputStream, I guess
it will close all the things which shared the same fd.