< prev index next >
src/hotspot/share/classfile/classLoaderData.cpp
Print this page
@@ -571,13 +571,10 @@
}
void ClassLoaderData::unload() {
_unloading = true;
- // Tell serviceability tools these classes are unloading
- classes_do(InstanceKlass::notify_unload_class);
-
LogTarget(Debug, class, loader, data) lt;
if (lt.is_enabled()) {
ResourceMark rm;
LogStream ls(lt);
ls.print("unload");
@@ -587,10 +584,14 @@
// Some items on the _deallocate_list need to free their C heap structures
// if they are not already on the _klasses list.
unload_deallocate_list();
+ // Tell serviceability tools these classes are unloading
+ // after erroreous classes are released.
+ classes_do(InstanceKlass::notify_unload_class);
+
// Clean up global class iterator for compiler
static_klass_iterator.adjust_saved_class(this);
}
ModuleEntryTable* ClassLoaderData::modules() {
< prev index next >