Bug description:
https://jbs.oracle.com/bugs/browse/JDK-8016579
http://bugs.sun.com/view_bug.do?bug_id=8016579
Here is the suggested fix:
http://cr.openjdk.java.net/~uta/openjdk-webrevs/JDK-8016579/webrev.00/
Summary:
We have THREE locales in action:
1. Thread default locale - dictates UNICODE-to-8bit conversion
2. OS locale that defines the message localization
3. The file name locale
Each locale could be an extended locale, that means that text cannot be
mapped to 8bit sequence without multibyte encoding. VM is ready for
that, if text is UTF-8.
The suggested fix does the work right from the beginning.
Unicode version of JVM call:
hotspot/src/os/windows/vm/os_windows.cpp:
size_t os::lasterror(char* buf, size_t len)
was used as prototype for Unicode error message getter. It has to be
fixed accordingly as well as
jdk/src/windows/native/java/io/io_util_md.c
size_t getLastErrorString(char *buf, size_t len)
The bug contains the attachment
https://jbs.oracle.com/bugs/secure/attachment/14581/JDK-8016579.txt
that summarize the fix result in comparison with original implementation.
Regards,
-uta