--- old/src/share/vm/logging/logOutput.cpp 2016-03-31 21:47:55.498582176 +0900 +++ new/src/share/vm/logging/logOutput.cpp 2016-03-31 21:47:55.338582801 +0900 @@ -57,19 +57,23 @@ size_t offset = strlen(_config_string); for (;;) { - int ret = ts->label(_config_string + offset, _config_string_buffer_size - offset, "+"); + size_t buffer_offset = (offset == 0) ? 0 : (offset + 1); + int ret = ts->label(_config_string + buffer_offset, _config_string_buffer_size - buffer_offset, "+"); if (ret == -1) { // Double the buffer size and retry _config_string_buffer_size *= 2; _config_string = REALLOC_C_HEAP_ARRAY(char, _config_string, _config_string_buffer_size, mtLogging); continue; } + if (offset > 0) { + _config_string[offset] = ','; + } break; }; offset = strlen(_config_string); for (;;) { - int ret = jio_snprintf(_config_string + offset, _config_string_buffer_size - offset, "=%s,", LogLevel::name(level)); + int ret = jio_snprintf(_config_string + offset, _config_string_buffer_size - offset, "=%s", LogLevel::name(level)); if (ret == -1) { _config_string_buffer_size *= 2; _config_string = REALLOC_C_HEAP_ARRAY(char, _config_string, _config_string_buffer_size, mtLogging);