RFR 8023173: FileOutputStream(FileDescriptor) does not respect append flag on Windows

Ivan Gerasimov ivan.gerasimov at oracle.com
Mon Oct 6 10:41:53 UTC 2014


Hello everybody!

The append mode is emulated on Windows, therefore we have to keep a flag 
indicating that.

With the current implementation, the FileDescriptor does not know if the 
file were opened with O_APPEND, and the flag is maintained at the upper 
level.
This can cause inconsistency, when the FileDescriptor is reused to 
construct a new FileOutputStream, as there is no information available 
about the append/non-append mode.

Even though the solution is quite straight-forward: moving the flag from 
FileOutputStream,  FileDispatcherImpl and FileChannelImpl to the lower 
level of FileDescriptor, it touches 20 files across the source-code base.

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8023173
WEBREV: http://cr.openjdk.java.net/~igerasim/8023173/0/webrev/

With the fix, all the io/nio tests, including the new one, pass on all 
available platforms.

Would you please help review this fix?

Sincerely yours,
Ivan


More information about the nio-dev mailing list