--- old/src/hotspot/share/oops/instanceKlass.cpp 2018-06-13 19:38:36.193695722 -0400 +++ new/src/hotspot/share/oops/instanceKlass.cpp 2018-06-13 19:38:34.540517112 -0400 @@ -2328,8 +2328,7 @@ void InstanceKlass::set_package(ClassLoaderData* loader_data, TRAPS) { // ensure java/ packages only loaded by boot or platform builtin loaders - Handle class_loader(THREAD, loader_data->class_loader()); - check_prohibited_package(name(), class_loader, CHECK); + check_prohibited_package(name(), loader_data, CHECK); TempNewSymbol pkg_name = package_from_name(name(), CHECK); @@ -2471,10 +2470,10 @@ // Only boot and platform class loaders can define classes in "java/" packages. void InstanceKlass::check_prohibited_package(Symbol* class_name, - Handle class_loader, + ClassLoaderData* loader_data, TRAPS) { - if (!class_loader.is_null() && - !SystemDictionary::is_platform_class_loader(class_loader()) && + if (!loader_data->is_boot_class_loader_data() && + !loader_data->is_platform_class_loader_data() && class_name != NULL) { ResourceMark rm(THREAD); char* name = class_name->as_C_string(); @@ -2482,7 +2481,7 @@ TempNewSymbol pkg_name = InstanceKlass::package_from_name(class_name, CHECK); assert(pkg_name != NULL, "Error in parsing package name starting with 'java/'"); name = pkg_name->as_C_string(); - const char* class_loader_name = SystemDictionary::loader_name(class_loader()); + const char* class_loader_name = loader_data->loader_name(); StringUtils::replace_no_expand(name, "/", "."); const char* msg_text1 = "Class loader (instance of): "; const char* msg_text2 = " tried to load prohibited package name: ";