changeset 23462:f46ffa934a46

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
author ccheung
date Wed, 02 Dec 2015 17:48:20 -0800
parents dce765c2ff7d
children 5cece4584b8e
files src/share/vm/classfile/classLoader.cpp src/share/vm/classfile/classLoader.hpp src/share/vm/classfile/sharedPathsMiscInfo.cpp src/share/vm/classfile/sharedPathsMiscInfo.hpp src/share/vm/runtime/arguments.cpp
diffstat 5 files changed, 13 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/classfile/classLoader.cpp	Thu Mar 27 22:36:08 2014 +0100
+++ b/src/share/vm/classfile/classLoader.cpp	Wed Dec 02 17:48:20 2015 -0800
@@ -414,30 +414,30 @@
 }
 #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) {
     return;
   }
 
   if (msg) {
-    tty->print("%s", msg);
+    out->print("%s", msg);
   }
   if (name) {
     if (strlen(name) < 256) {
-      tty->print("%s", name);
+      out->print("%s", name);
     } else {
       // For very long paths, we need to print each character separately,
       // as print_cr() has a length limit
       while (name[0] != '\0') {
-        tty->print("%c", name[0]);
+        out->print("%c", name[0]);
         name++;
       }
     }
   }
   if (msg && msg[0] == '[') {
-    tty->print_cr("]");
+    out->print_cr("]");
   } else {
-    tty->cr();
+    out->cr();
   }
 }
 
@@ -583,7 +583,7 @@
     // 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.
   } 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 (DumpSharedSpaces) {
--- a/src/share/vm/classfile/classLoader.hpp	Thu Mar 27 22:36:08 2014 +0100
+++ b/src/share/vm/classfile/classLoader.hpp	Wed Dec 02 17:48:20 2015 -0800
@@ -346,7 +346,7 @@
   static void  exit_with_path_failure(const char* error, const char* message);
 #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
   static jlong classloader_time_ms();
--- a/src/share/vm/classfile/sharedPathsMiscInfo.cpp	Thu Mar 27 22:36:08 2014 +0100
+++ b/src/share/vm/classfile/sharedPathsMiscInfo.cpp	Wed Dec 02 17:48:20 2015 -0800
@@ -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.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@
 }
 
 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();
   return false;
 }
--- a/src/share/vm/classfile/sharedPathsMiscInfo.hpp	Thu Mar 27 22:36:08 2014 +0100
+++ b/src/share/vm/classfile/sharedPathsMiscInfo.hpp	Wed Dec 02 17:48:20 2015 -0800
@@ -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.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,7 +64,7 @@
   bool read(void* ptr, size_t size);
 
   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:
   static bool fail(const char* msg, const char* name = NULL);
--- a/src/share/vm/runtime/arguments.cpp	Thu Mar 27 22:36:08 2014 +0100
+++ b/src/share/vm/runtime/arguments.cpp	Wed Dec 02 17:48:20 2015 -0800
@@ -3414,7 +3414,7 @@
   }
 
   if (!PrintSharedArchiveAndExit) {
-    ClassLoader::trace_class_path("[classpath: ", _java_class_path->value());
+    ClassLoader::trace_class_path(tty, "[classpath: ", _java_class_path->value());
   }
 }