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

Reply via email to