提交 295f7ff9 编写于 作者: C ccheung

8143963: improve ClassLoader::trace_class_path to accept an additional outputStream* arg

Summary: for fixing a truncation problem on the output from -XX:+TraceClassPaths
Reviewed-by: coleenp, jiangli, cjplummer, minqi
上级 cbf90f1a
...@@ -414,30 +414,30 @@ void ClassLoader::exit_with_path_failure(const char* error, const char* message) ...@@ -414,30 +414,30 @@ void ClassLoader::exit_with_path_failure(const char* error, const char* message)
} }
#endif #endif
void ClassLoader::trace_class_path(const char* msg, const char* name) { void ClassLoader::trace_class_path(outputStream* out, const char* msg, const char* name) {
if (!TraceClassPaths) { if (!TraceClassPaths) {
return; return;
} }
if (msg) { if (msg) {
tty->print("%s", msg); out->print("%s", msg);
} }
if (name) { if (name) {
if (strlen(name) < 256) { if (strlen(name) < 256) {
tty->print("%s", name); out->print("%s", name);
} else { } else {
// For very long paths, we need to print each character separately, // For very long paths, we need to print each character separately,
// as print_cr() has a length limit // as print_cr() has a length limit
while (name[0] != '\0') { while (name[0] != '\0') {
tty->print("%c", name[0]); out->print("%c", name[0]);
name++; name++;
} }
} }
} }
if (msg && msg[0] == '[') { if (msg && msg[0] == '[') {
tty->print_cr("]"); out->print_cr("]");
} else { } else {
tty->cr(); out->cr();
} }
} }
...@@ -583,7 +583,7 @@ void ClassLoader::setup_bootstrap_search_path() { ...@@ -583,7 +583,7 @@ void ClassLoader::setup_bootstrap_search_path() {
// Don't print sys_class_path - this is the bootcp of this current VM process, not necessarily // Don't print sys_class_path - this is the bootcp of this current VM process, not necessarily
// the same as the bootcp of the shared archive. // the same as the bootcp of the shared archive.
} else { } else {
trace_class_path("[Bootstrap loader class path=", sys_class_path); trace_class_path(tty, "[Bootstrap loader class path=", sys_class_path);
} }
#if INCLUDE_CDS #if INCLUDE_CDS
if (DumpSharedSpaces) { if (DumpSharedSpaces) {
......
...@@ -346,7 +346,7 @@ class ClassLoader: AllStatic { ...@@ -346,7 +346,7 @@ class ClassLoader: AllStatic {
static void exit_with_path_failure(const char* error, const char* message); static void exit_with_path_failure(const char* error, const char* message);
#endif #endif
static void trace_class_path(const char* msg, const char* name = NULL); static void trace_class_path(outputStream* out, const char* msg, const char* name = NULL);
// VM monitoring and management support // VM monitoring and management support
static jlong classloader_time_ms(); static jlong classloader_time_ms();
......
/* /*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -67,7 +67,7 @@ bool SharedPathsMiscInfo::read(void* ptr, size_t size) { ...@@ -67,7 +67,7 @@ bool SharedPathsMiscInfo::read(void* ptr, size_t size) {
} }
bool SharedPathsMiscInfo::fail(const char* msg, const char* name) { bool SharedPathsMiscInfo::fail(const char* msg, const char* name) {
ClassLoader::trace_class_path(msg, name); ClassLoader::trace_class_path(tty, msg, name);
MetaspaceShared::set_archive_loading_failed(); MetaspaceShared::set_archive_loading_failed();
return false; return false;
} }
......
/* /*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -64,7 +64,7 @@ protected: ...@@ -64,7 +64,7 @@ protected:
bool read(void* ptr, size_t size); bool read(void* ptr, size_t size);
static void trace_class_path(const char* msg, const char* name = NULL) { static void trace_class_path(const char* msg, const char* name = NULL) {
ClassLoader::trace_class_path(msg, name); ClassLoader::trace_class_path(tty, msg, name);
} }
protected: protected:
static bool fail(const char* msg, const char* name = NULL); static bool fail(const char* msg, const char* name = NULL);
......
...@@ -3414,7 +3414,7 @@ void Arguments::fix_appclasspath() { ...@@ -3414,7 +3414,7 @@ void Arguments::fix_appclasspath() {
} }
if (!PrintSharedArchiveAndExit) { if (!PrintSharedArchiveAndExit) {
ClassLoader::trace_class_path("[classpath: ", _java_class_path->value()); ClassLoader::trace_class_path(tty, "[classpath: ", _java_class_path->value());
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册