7179383: MaxDirectMemorySize argument parsing is broken for values >2G
Change hotspot flag to be unsigned Reviewed-by: dholmes, sla, fparain, brutisso
This commit is contained in:
parent
135f315eaa
commit
d1080de4ee
@ -345,9 +345,13 @@ JVM_ENTRY(jobject, JVM_InitProperties(JNIEnv *env, jobject properties))
|
|||||||
// Do this after setting user properties to prevent people
|
// Do this after setting user properties to prevent people
|
||||||
// from setting the value with a -D option, as requested.
|
// from setting the value with a -D option, as requested.
|
||||||
{
|
{
|
||||||
char as_chars[256];
|
if (FLAG_IS_DEFAULT(MaxDirectMemorySize)) {
|
||||||
jio_snprintf(as_chars, sizeof(as_chars), INTX_FORMAT, MaxDirectMemorySize);
|
PUTPROP(props, "sun.nio.MaxDirectMemorySize", "-1");
|
||||||
PUTPROP(props, "sun.nio.MaxDirectMemorySize", as_chars);
|
} else {
|
||||||
|
char as_chars[256];
|
||||||
|
jio_snprintf(as_chars, sizeof(as_chars), UINTX_FORMAT, MaxDirectMemorySize);
|
||||||
|
PUTPROP(props, "sun.nio.MaxDirectMemorySize", as_chars);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// JVM monitoring and management support
|
// JVM monitoring and management support
|
||||||
|
@ -2709,6 +2709,17 @@ SOLARIS_ONLY(
|
|||||||
return JNI_EINVAL;
|
return JNI_EINVAL;
|
||||||
}
|
}
|
||||||
FLAG_SET_CMDLINE(uintx, ConcGCThreads, conc_threads);
|
FLAG_SET_CMDLINE(uintx, ConcGCThreads, conc_threads);
|
||||||
|
} else if (match_option(option, "-XX:MaxDirectMemorySize=", &tail)) {
|
||||||
|
julong max_direct_memory_size = 0;
|
||||||
|
ArgsRange errcode = parse_memory_size(tail, &max_direct_memory_size, 0);
|
||||||
|
if (errcode != arg_in_range) {
|
||||||
|
jio_fprintf(defaultStream::error_stream(),
|
||||||
|
"Invalid maximum direct memory size: %s\n",
|
||||||
|
option->optionString);
|
||||||
|
describe_range_error(errcode);
|
||||||
|
return JNI_EINVAL;
|
||||||
|
}
|
||||||
|
FLAG_SET_CMDLINE(uintx, MaxDirectMemorySize, max_direct_memory_size);
|
||||||
} else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx
|
} else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx
|
||||||
// Skip -XX:Flags= since that case has already been handled
|
// Skip -XX:Flags= since that case has already been handled
|
||||||
if (strncmp(tail, "Flags=", strlen("Flags=")) != 0) {
|
if (strncmp(tail, "Flags=", strlen("Flags=")) != 0) {
|
||||||
|
@ -3705,7 +3705,7 @@ class CommandLineFlags {
|
|||||||
\
|
\
|
||||||
/* Properties for Java libraries */ \
|
/* Properties for Java libraries */ \
|
||||||
\
|
\
|
||||||
product(intx, MaxDirectMemorySize, -1, \
|
product(uintx, MaxDirectMemorySize, 0, \
|
||||||
"Maximum total size of NIO direct-buffer allocations") \
|
"Maximum total size of NIO direct-buffer allocations") \
|
||||||
\
|
\
|
||||||
/* temporary developer defined flags */ \
|
/* temporary developer defined flags */ \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user