--- old/src/share/vm/logging/logFileOutput.cpp 2016-03-31 18:20:38.577958721 +0900 +++ new/src/share/vm/logging/logFileOutput.cpp 2016-03-31 18:20:38.009697414 +0900 @@ -26,6 +26,7 @@ #include "logging/logConfiguration.hpp" #include "logging/logFileOutput.hpp" #include "memory/allocation.inline.hpp" +#include "runtime/arguments.hpp" #include "runtime/os.inline.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/defaultStream.hpp" @@ -116,12 +117,7 @@ _archive_name_len = 2 + strlen(_file_name) + _file_count_max_digits; _archive_name = NEW_C_HEAP_ARRAY(char, _archive_name_len, mtLogging); } else if (strcmp(FileSizeOptionKey, key) == 0) { - size_t value = parse_value(value_str); - if (value == SIZE_MAX || value > SIZE_MAX / K) { - success = false; - break; - } - _rotate_size = value * K; + success = Arguments::atomull(value_str, &_rotate_size); } else { success = false; break; --- old/src/share/vm/runtime/arguments.cpp 2016-03-31 18:20:39.166456254 +0900 +++ new/src/share/vm/runtime/arguments.cpp 2016-03-31 18:20:39.002373608 +0900 @@ -786,7 +786,7 @@ } // Parses a memory size specification string. -static bool atomull(const char *s, julong* result) { +bool Arguments::atomull(const char *s, julong* result) { julong n = 0; int args_read = 0; bool is_hex = false; @@ -900,7 +900,7 @@ value++; is_neg = true; } - if (!atomull(value, &v)) { + if (!Arguments::atomull(value, &v)) { return false; } if (result->is_int()) { @@ -2640,7 +2640,7 @@ if (value_is_positive) { julong n; - bool good_return = atomull(value, &n); + bool good_return = Arguments::atomull(value, &n); if (good_return) { bool above_minimum = n >= min_size; bool value_is_too_large = n > max_uintx; @@ -2657,7 +2657,7 @@ Arguments::ArgsRange Arguments::parse_memory_size(const char* s, julong* long_arg, julong min_size) { - if (!atomull(s, long_arg)) return arg_unreadable; + if (!Arguments::atomull(s, long_arg)) return arg_unreadable; return check_memory_size(*long_arg, min_size); } --- old/src/share/vm/runtime/arguments.hpp 2016-03-31 18:20:39.914453118 +0900 +++ new/src/share/vm/runtime/arguments.hpp 2016-03-31 18:20:39.745787158 +0900 @@ -730,6 +730,8 @@ static bool copy_expand_pid(const char* src, size_t srclen, char* buf, size_t buflen); static void check_unsupported_dumping_properties() NOT_CDS_RETURN; + + static bool atomull(const char *s, julong* result); }; // Disable options not supported in this release, with a warning if they