# HG changeset patch # User ysr # Date 1262645486 28800 # Node ID 75bd253e25dd936dd22575d049f7189c67919ec0 # Parent 504830073409ad37c49c45dece00ba947c96ebb6 6637203: Classunloading messages go to stdout rather than Xloggc file, causing hangs when stdout is closed Summary: Decoupled TraceClassUnloading from verbose:gc, JVMTI_VERBOSE_GC and PrintGC[Details], making it settable in a manner identical to TraceClassLoading. Reverted an inadvertent change of TraceClassUnloading output in a previous changeset from gclog back to tty. Reviewed-by: coleenp, dholmes, jmasa, poonam diff -r 504830073409 -r 75bd253e25dd src/share/vm/prims/jvmtiEnv.cpp --- a/src/share/vm/prims/jvmtiEnv.cpp Mon Jan 04 07:58:42 2010 -0800 +++ b/src/share/vm/prims/jvmtiEnv.cpp Mon Jan 04 14:51:26 2010 -0800 @@ -592,7 +592,6 @@ break; case JVMTI_VERBOSE_GC: PrintGC = value != 0; - TraceClassUnloading = value != 0; break; case JVMTI_VERBOSE_JNI: PrintJNIResolving = value != 0; diff -r 504830073409 -r 75bd253e25dd src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Mon Jan 04 07:58:42 2010 -0800 +++ b/src/share/vm/runtime/arguments.cpp Mon Jan 04 14:51:26 2010 -0800 @@ -1866,7 +1866,6 @@ FLAG_SET_CMDLINE(bool, TraceClassUnloading, true); } else if (!strcmp(tail, ":gc")) { FLAG_SET_CMDLINE(bool, PrintGC, true); - FLAG_SET_CMDLINE(bool, TraceClassUnloading, true); } else if (!strcmp(tail, ":jni")) { FLAG_SET_CMDLINE(bool, PrintJNIResolving, true); } @@ -2720,9 +2719,6 @@ if (PrintGCDetails) { // Turn on -verbose:gc options as well PrintGC = true; - if (FLAG_IS_DEFAULT(TraceClassUnloading)) { - TraceClassUnloading = true; - } } #if defined(_LP64) && defined(COMPILER1) diff -r 504830073409 -r 75bd253e25dd src/share/vm/services/classLoadingService.cpp --- a/src/share/vm/services/classLoadingService.cpp Mon Jan 04 07:58:42 2010 -0800 +++ b/src/share/vm/services/classLoadingService.cpp Mon Jan 04 14:51:26 2010 -0800 @@ -128,7 +128,7 @@ if (TraceClassUnloading) { ResourceMark rm; - gclog_or_tty->print_cr("[Unloading class %s]", k->external_name()); + tty->print_cr("[Unloading class %s]", k->external_name()); } }