< prev index next >

src/share/vm/classfile/classLoader.cpp

Print this page




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 


< prev index next >