comparison src/share/vm/classfile/classFileParser.cpp @ 17891:b6a2ba7d3ea7 hs25.20-b11

Merge
author amurillo
date Thu, 17 Apr 2014 16:09:07 -0700
parents a18dafb24f80 7e6c20c85ccf
children 366c198c896d 364b73402247
comparison
equal deleted inserted replaced
17862:70dc2c030c69 17891:b6a2ba7d3ea7
3749 if (!is_supported_version(major_version, minor_version)) { 3749 if (!is_supported_version(major_version, minor_version)) {
3750 if (name == NULL) { 3750 if (name == NULL) {
3751 Exceptions::fthrow( 3751 Exceptions::fthrow(
3752 THREAD_AND_LOCATION, 3752 THREAD_AND_LOCATION,
3753 vmSymbols::java_lang_UnsupportedClassVersionError(), 3753 vmSymbols::java_lang_UnsupportedClassVersionError(),
3754 "Unsupported major.minor version %u.%u", 3754 "Unsupported class file version %u.%u, "
3755 "this version of the Java Runtime only recognizes class file versions up to %u.%u",
3755 major_version, 3756 major_version,
3756 minor_version); 3757 minor_version,
3758 JAVA_MAX_SUPPORTED_VERSION,
3759 JAVA_MAX_SUPPORTED_MINOR_VERSION);
3757 } else { 3760 } else {
3758 ResourceMark rm(THREAD); 3761 ResourceMark rm(THREAD);
3759 Exceptions::fthrow( 3762 Exceptions::fthrow(
3760 THREAD_AND_LOCATION, 3763 THREAD_AND_LOCATION,
3761 vmSymbols::java_lang_UnsupportedClassVersionError(), 3764 vmSymbols::java_lang_UnsupportedClassVersionError(),
3762 "%s : Unsupported major.minor version %u.%u", 3765 "%s has been compiled by a more recent version of the Java Runtime (class file version %u.%u), "
3766 "this version of the Java Runtime only recognizes class file versions up to %u.%u",
3763 name->as_C_string(), 3767 name->as_C_string(),
3764 major_version, 3768 major_version,
3765 minor_version); 3769 minor_version,
3770 JAVA_MAX_SUPPORTED_VERSION,
3771 JAVA_MAX_SUPPORTED_MINOR_VERSION);
3766 } 3772 }
3767 return nullHandle; 3773 return nullHandle;
3768 } 3774 }
3769 3775
3770 _major_version = major_version; 3776 _major_version = major_version;
4173 Annotations::free_contents(_loader_data, _fields_annotations); 4179 Annotations::free_contents(_loader_data, _fields_annotations);
4174 Annotations::free_contents(_loader_data, _fields_type_annotations); 4180 Annotations::free_contents(_loader_data, _fields_type_annotations);
4175 4181
4176 clear_class_metadata(); 4182 clear_class_metadata();
4177 4183
4178 // deallocate the klass if already created. 4184 // deallocate the klass if already created. Don't directly deallocate, but add
4179 MetadataFactory::free_metadata(_loader_data, _klass); 4185 // to the deallocate list so that the klass is removed from the CLD::_klasses list
4186 // at a safepoint.
4187 if (_klass != NULL) {
4188 _loader_data->add_to_deallocate_list(_klass);
4189 }
4180 _klass = NULL; 4190 _klass = NULL;
4181 } 4191 }
4182 4192
4183 void ClassFileParser::print_field_layout(Symbol* name, 4193 void ClassFileParser::print_field_layout(Symbol* name,
4184 Array<u2>* fields, 4194 Array<u2>* fields,