# HG changeset patch # User kevinw # Date 1468527551 25200 # Node ID 5c22c4afdafb80d613797aae51a6b10351a90729 # Parent 72a298cbc07173c45bba78c98c9516b7c310c479# Parent aa8bf5341fc06b2a602b19bb04bb1de7ca3313f7 Merge diff -r 72a298cbc071 -r 5c22c4afdafb .hgtags --- a/.hgtags Thu Jun 30 08:11:30 2016 -0400 +++ b/.hgtags Thu Jul 14 13:19:11 2016 -0700 @@ -899,3 +899,5 @@ e73d79ce00e4a0451e464c7a73d9c911d01e169a jdk8u111-b01 d584a614818562e1187e1a15c202aec01491caeb jdk8u111-b02 a3ede966ecfe6009fe4a58fbd6903c470a059ad3 jdk8u111-b03 +65029655928a834018a6793253c9b2699044af92 jdk8u111-b04 +3b0e5f01891f5ebbf67797b1aae786196f1bb4f6 jdk8u121-b00 diff -r 72a298cbc071 -r 5c22c4afdafb src/share/vm/classfile/classFileParser.cpp --- a/src/share/vm/classfile/classFileParser.cpp Thu Jun 30 08:11:30 2016 -0400 +++ b/src/share/vm/classfile/classFileParser.cpp Thu Jul 14 13:19:11 2016 -0700 @@ -3969,6 +3969,11 @@ // Make sure this is the end of class file stream guarantee_property(cfs->at_eos(), "Extra bytes at the end of class file %s", CHECK_(nullHandle)); + if (_class_name == vmSymbols::java_lang_Object()) { + check_property(_local_interfaces == Universe::the_empty_klass_array(), + "java.lang.Object cannot implement an interface in class file %s", + CHECK_(nullHandle)); + } // We check super class after class file is parsed and format is checked if (super_class_index > 0 && super_klass.is_null()) { Symbol* sk = cp->klass_name_at(super_class_index); diff -r 72a298cbc071 -r 5c22c4afdafb src/share/vm/prims/jvm.cpp --- a/src/share/vm/prims/jvm.cpp Thu Jun 30 08:11:30 2016 -0400 +++ b/src/share/vm/prims/jvm.cpp Thu Jul 14 13:19:11 2016 -0700 @@ -2626,7 +2626,6 @@ switch (cp->tag_at(cp_index).value()) { case JVM_CONSTANT_InterfaceMethodref: case JVM_CONSTANT_Methodref: - case JVM_CONSTANT_NameAndType: // for invokedynamic return cp->uncached_name_ref_at(cp_index)->as_utf8(); default: fatal("JVM_GetCPMethodNameUTF: illegal constant"); @@ -2644,7 +2643,6 @@ switch (cp->tag_at(cp_index).value()) { case JVM_CONSTANT_InterfaceMethodref: case JVM_CONSTANT_Methodref: - case JVM_CONSTANT_NameAndType: // for invokedynamic return cp->uncached_signature_ref_at(cp_index)->as_utf8(); default: fatal("JVM_GetCPMethodSignatureUTF: illegal constant");