mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 05:45:11 +02:00
8143963: improve ClassLoader::trace_class_path to accept an additional outputStream* arg
For fixing a truncation problem on the output from -XX:+TraceClassPaths Reviewed-by: coleenp, jiangli, cjplummer, minqi
This commit is contained in:
parent
8549d3bb88
commit
6887844c72
5 changed files with 12 additions and 12 deletions
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,7 +466,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) {
|
||||||
|
|
|
@ -328,7 +328,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();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* 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) {
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,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);
|
||||||
|
|
|
@ -3425,7 +3425,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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue