--- a/src/hotspot/share/classfile/classLoaderDataGraph.cpp Thu Oct 04 14:03:13 2018 +0200
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.cpp Thu Oct 04 16:39:07 2018 +0200
@@ -487,6 +487,21 @@
}
#endif // PRODUCT
+bool ClassLoaderDataGraph::is_valid(ClassLoaderData* loader_data) {
+ DEBUG_ONLY( if (!VMError::is_error_reported()) { assert_locked_or_safepoint(ClassLoaderDataGraph_lock); } )
+ if (loader_data != NULL) {
+ if (loader_data == ClassLoaderData::the_null_class_loader_data()) {
+ return true;
+ }
+ for (ClassLoaderData* data = _head; data != NULL; data = data->next()) {
+ if (loader_data == data) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
// Move class loader data from main list to the unloaded list for unloading
// and deallocation later.
bool ClassLoaderDataGraph::do_unloading(bool do_cleaning) {