|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
OS : Solaris 9/10 (japanese locale(LOCALE=ja))
WindowsXP(SP2, Japanese)
JDK : 6.0u2/JDK7b16
REPRODUCE :
1) Compile the attached test program
2) Invoke "java Command"
3) Please look at the message when IOException occurs in java.lang.Runtime#exec
(The test program tests other cases. The licensee focus on the IOException message.)
This does not occur in 1.3.1, 1.4.2_XX and 5.0ux.
NOTE :
The test program checks several cases. The above issues occurs in IOException check.
INVESTIGATION :
[j2se/src/solaris/native/java.lang/UNIXProcess_md.c]
.....
static void
throwIOException(JNIEnv *env, int errnum, const char *defaultDetail)
{
static const char * const format = "error=%d, %s";
const char *detail = defaultDetail;
char *errmsg;
if (errnum != 0) {
const char *s = strerror(errnum);
if (strcmp(s, "Unknown error") != 0)
detail = s;
}
/* ASCII Decimal representation uses 2.4 times as many bits as binary. */
errmsg = NEW(char, strlen(format) + strlen(detail) + 3 * sizeof(errnum));
sprintf(errmsg, format, errnum, detail);
JNU_ThrowIOException(env, errmsg);
free(errmsg);
}
.....
The return value(Japanese EUC encoding ) from strerr() is used in UTF-8.
That's why the error message can not be displayed correctly.
OTHERS:
Please see the strong requests in "comment section".
|