Thu, 14 Jul 2016 13:19:11 -0700
Merge
1.1 --- a/.hgtags Thu Jun 30 08:11:30 2016 -0400 1.2 +++ b/.hgtags Thu Jul 14 13:19:11 2016 -0700 1.3 @@ -899,3 +899,5 @@ 1.4 e73d79ce00e4a0451e464c7a73d9c911d01e169a jdk8u111-b01 1.5 d584a614818562e1187e1a15c202aec01491caeb jdk8u111-b02 1.6 a3ede966ecfe6009fe4a58fbd6903c470a059ad3 jdk8u111-b03 1.7 +65029655928a834018a6793253c9b2699044af92 jdk8u111-b04 1.8 +3b0e5f01891f5ebbf67797b1aae786196f1bb4f6 jdk8u121-b00
2.1 --- a/src/share/vm/classfile/classFileParser.cpp Thu Jun 30 08:11:30 2016 -0400 2.2 +++ b/src/share/vm/classfile/classFileParser.cpp Thu Jul 14 13:19:11 2016 -0700 2.3 @@ -3969,6 +3969,11 @@ 2.4 // Make sure this is the end of class file stream 2.5 guarantee_property(cfs->at_eos(), "Extra bytes at the end of class file %s", CHECK_(nullHandle)); 2.6 2.7 + if (_class_name == vmSymbols::java_lang_Object()) { 2.8 + check_property(_local_interfaces == Universe::the_empty_klass_array(), 2.9 + "java.lang.Object cannot implement an interface in class file %s", 2.10 + CHECK_(nullHandle)); 2.11 + } 2.12 // We check super class after class file is parsed and format is checked 2.13 if (super_class_index > 0 && super_klass.is_null()) { 2.14 Symbol* sk = cp->klass_name_at(super_class_index);
3.1 --- a/src/share/vm/prims/jvm.cpp Thu Jun 30 08:11:30 2016 -0400 3.2 +++ b/src/share/vm/prims/jvm.cpp Thu Jul 14 13:19:11 2016 -0700 3.3 @@ -2626,7 +2626,6 @@ 3.4 switch (cp->tag_at(cp_index).value()) { 3.5 case JVM_CONSTANT_InterfaceMethodref: 3.6 case JVM_CONSTANT_Methodref: 3.7 - case JVM_CONSTANT_NameAndType: // for invokedynamic 3.8 return cp->uncached_name_ref_at(cp_index)->as_utf8(); 3.9 default: 3.10 fatal("JVM_GetCPMethodNameUTF: illegal constant"); 3.11 @@ -2644,7 +2643,6 @@ 3.12 switch (cp->tag_at(cp_index).value()) { 3.13 case JVM_CONSTANT_InterfaceMethodref: 3.14 case JVM_CONSTANT_Methodref: 3.15 - case JVM_CONSTANT_NameAndType: // for invokedynamic 3.16 return cp->uncached_signature_ref_at(cp_index)->as_utf8(); 3.17 default: 3.18 fatal("JVM_GetCPMethodSignatureUTF: illegal constant");