Code review request: 7082769: FileInputStream/FileOutputStream/RandomAccessFile allow file descriptor be closed when still in use
Chris Hegarty
chris.hegarty at oracle.com
Fri Sep 9 10:26:38 UTC 2011
Sean,
The changes look good, though I haven't gone through the test in much
detail!
One question that is not directly related to your changes, but may be
applicable.
Shouldn't the close on FileChannel also check the value of the use count
before closing the native fd? For example:
raf = new RandomAccessFile("test1", "rw");
fd = raf.getFD();
fos = new FileOutputStream(fd);
fos.getChannel();
fis = new FileInputStream(fd);
fos.close()
fis.read() <<<<<<< will this fail ????
Yes the channel should be closed, but shouldn't the
FileChannelImpl.close itself decrement the use count and not close the
fd if it is still in use?
-Chris
On 08/09/2011 18:11, Seán Coffey wrote:
> http://bugs.sun.com/view_bug.do?bug_id=7082769
>
> webrev : http://cr.openjdk.java.net/~coffeys/webrev.7082769.7087019.jdk8/
>
> Bug fix where we ensure that the fd object is not disposed of until all
> streams are closed out.
>
> Testcase is a bulked up version of CR 6322678 (which wasn't committed at
> time of 6322678 fix). It includes create/close() calls for
> FileInputStream/FileOutputStream/RandomAccessFile which all reference
> the same file descriptor. Multi threaded access to the same file
> descriptor is also tested.
>
> Typo fix also as per http://bugs.sun.com/view_bug.do?bug_id=7087019 also
> included.
>
> regards,
> Sean.
>
More information about the core-libs-dev
mailing list