Review Request: JDK-8001334 - Remove use of JVM_* functions from java.io code
Alexey Utkin
alexey.utkin at oracle.com
Thu Mar 7 13:21:10 UTC 2013
Can I say two word about the file
http://cr.openjdk.java.net/~dxu/8001334/webrev.01/src/windows/native/java/io/io_util_md.c.frames.html
and function
getLastErrorString(char *buf, size_t len)
Here is the documentation for [FormatMessage]:
http://msdn.microsoft.com/en-gb/library/windows/desktop/ms679351%28v=vs.85%29.aspx
if you are using ASCII version of FormatMessage that is a good idea to
have the direct reference to [FormatMessageA], not define.
The second word is about the third world countries: Russia and China.
Windows OS has localized version. The error messages on that systems
would contains only [?] in the worst case.
===========================
dwLanguageId [in]
The language identifier for the requested message. This parameter
is ignored if dwFlags includes FORMAT_MESSAGE_FROM_STRING.
If you pass a specific LANGID in this parameter, FormatMessage will
return a message for that LANGID only. If the function cannot find a
message for that LANGID, it sets Last-Error to
ERROR_RESOURCE_LANG_NOT_FOUND.
!!!!------------>If you pass in zero, FormatMessage looks for a message
for LANGIDs in the following order:
Language neutral
Thread LANGID, based on the thread's locale value
User default LANGID, based on the user's default locale value
System default LANGID, based on the system default locale value
US English <-------------!!!!
If FormatMessage does not locate a message for any of the preceding
LANGIDs, it returns any language message string that is present. If that
fails, it returns ERROR_RESOURCE_LANG_NOT_FOUND.
===========================
On 07.03.2013 16:40, Alan Bateman wrote:
> On 05/03/2013 18:39, Dan Xu wrote:
>> Hi All,
>>
>> Thanks for your good suggestions. I have updated this fix and put the
>> new webrev at http://cr.openjdk.java.net/~dxu/8001334/webrev.01/.
>> Please help review it. Thanks!
>>
>> -Dan
>>
> I've looked at the latest webrev and it looks quite good. There are
> several other things that should be done, like the O_CLOEXEC topic
> that we discussed here, but they can be done later. The main thing is
> that we've removed the dependency on the JVM_* functions and so
> finally being the interruptible I/O story to to end.
>
> For naming then I probably should chosen something other than handle*
> for the *nix code but I guess what you have is okay.
>
> A few comments on the *nix handleOpen:
>
> - it doesn't look like "flag" is needed as you can pass oflag to open64.
>
> - it looks like close could set errno. At least for the EISDIR case
> you probably should set this after the close.
>
> - I assume fstat64 should use RESTARTABLE.
>
> A small comment on handleRead/handleWrite is that the return from
> read/write is normally ssize_t.
>
> Something for another day but we would re-examine handleAppend as the
> file should be open for O_APPEND already.
>
> Minor nit in handleAvailable is that the last if-then-else is missing
> braces around the return 0.
>
> Minor nit in the RESTARTABLE macro (io_util_md.c), probably should use
> 4-space indent.
>
> That's all I have.
>
> -Alan.
>
>
>
More information about the core-libs-dev
mailing list