1117 1118 if (stream != NULL) { 1119 // class file found, parse it 1120 ClassFileParser parser(stream); 1121 ClassLoaderData* loader_data = ClassLoaderData::the_null_class_loader_data(); 1122 Handle protection_domain; 1123 TempNewSymbol parsed_name = NULL; 1124 instanceKlassHandle result = parser.parseClassFile(h_name, 1125 loader_data, 1126 protection_domain, 1127 parsed_name, 1128 context.should_verify(classpath_index), 1129 THREAD); 1130 if (HAS_PENDING_EXCEPTION) { 1131 ResourceMark rm; 1132 if (DumpSharedSpaces) { 1133 tty->print_cr("Preload Error: Failed to load %s", class_name); 1134 } 1135 return h; 1136 } 1137 h = context.record_result(classpath_index, e, result, THREAD); 1138 } else { 1139 if (DumpSharedSpaces) { 1140 tty->print_cr("Preload Warning: Cannot find %s", class_name); 1141 } 1142 } 1143 1144 return h; 1145 } 1146 1147 1148 void ClassLoader::create_package_info_table(HashtableBucket<mtClass> *t, int length, 1149 int number_of_entries) { 1150 assert(_package_hash_table == NULL, "One package info table allowed."); 1151 assert(length == package_hash_table_size * sizeof(HashtableBucket<mtClass>), 1152 "bad shared package info size."); 1153 _package_hash_table = new PackageHashtable(package_hash_table_size, t, 1154 number_of_entries); 1155 } 1156 | 1117 1118 if (stream != NULL) { 1119 // class file found, parse it 1120 ClassFileParser parser(stream); 1121 ClassLoaderData* loader_data = ClassLoaderData::the_null_class_loader_data(); 1122 Handle protection_domain; 1123 TempNewSymbol parsed_name = NULL; 1124 instanceKlassHandle result = parser.parseClassFile(h_name, 1125 loader_data, 1126 protection_domain, 1127 parsed_name, 1128 context.should_verify(classpath_index), 1129 THREAD); 1130 if (HAS_PENDING_EXCEPTION) { 1131 ResourceMark rm; 1132 if (DumpSharedSpaces) { 1133 tty->print_cr("Preload Error: Failed to load %s", class_name); 1134 } 1135 return h; 1136 } 1137 1138 #if INCLUDE_JFR 1139 { 1140 InstanceKlass* ik = result(); 1141 ON_KLASS_CREATION(ik, parser, THREAD); 1142 result = instanceKlassHandle(ik); 1143 } 1144 #endif 1145 1146 h = context.record_result(classpath_index, e, result, THREAD); 1147 } else { 1148 if (DumpSharedSpaces) { 1149 tty->print_cr("Preload Warning: Cannot find %s", class_name); 1150 } 1151 } 1152 1153 return h; 1154 } 1155 1156 1157 void ClassLoader::create_package_info_table(HashtableBucket<mtClass> *t, int length, 1158 int number_of_entries) { 1159 assert(_package_hash_table == NULL, "One package info table allowed."); 1160 assert(length == package_hash_table_size * sizeof(HashtableBucket<mtClass>), 1161 "bad shared package info size."); 1162 _package_hash_table = new PackageHashtable(package_hash_table_size, t, 1163 number_of_entries); 1164 } 1165 |