1.1 --- a/src/share/vm/classfile/classLoaderData.cpp Wed Apr 24 09:00:04 2013 -0400 1.2 +++ b/src/share/vm/classfile/classLoaderData.cpp Wed Apr 24 16:19:35 2013 -0400 1.3 @@ -277,6 +277,9 @@ 1.4 void ClassLoaderData::unload() { 1.5 _unloading = true; 1.6 1.7 + // Tell serviceability tools these classes are unloading 1.8 + classes_do(InstanceKlass::notify_unload_class); 1.9 + 1.10 if (TraceClassLoaderData) { 1.11 ResourceMark rm; 1.12 tty->print("[ClassLoaderData: unload loader data "PTR_FORMAT, this); 1.13 @@ -300,6 +303,9 @@ 1.14 1.15 1.16 ClassLoaderData::~ClassLoaderData() { 1.17 + // Release C heap structures for all the classes. 1.18 + classes_do(InstanceKlass::release_C_heap_structures); 1.19 + 1.20 Metaspace *m = _metaspace; 1.21 if (m != NULL) { 1.22 _metaspace = NULL;