comparison src/share/vm/classfile/classFileParser.cpp @ 13398:19146c82b6fc

8028520: JVM should not throw VerifyError when a private method overrides a final method Summary: Exclude private methods when checking for final method override. Reviewed-by: kamg, coleenp, dholmes, mseledtsov
author hseigel
date Thu, 21 Nov 2013 14:41:13 -0500
parents fce21ac5968d
children 02f27ecb4f3a 715bc50198c1 e254e5940c19 4638c4d7ff10
comparison
equal deleted inserted replaced
13392:396564992823 13398:19146c82b6fc
4481 4481
4482 // go thru each method and check if it overrides a final method 4482 // go thru each method and check if it overrides a final method
4483 for (int index = 0; index < num_methods; index++) { 4483 for (int index = 0; index < num_methods; index++) {
4484 Method* m = methods->at(index); 4484 Method* m = methods->at(index);
4485 4485
4486 // skip static and <init> methods 4486 // skip private, static, and <init> methods
4487 if ((!m->is_static()) && 4487 if ((!m->is_private() && !m->is_static()) &&
4488 (m->name() != vmSymbols::object_initializer_name())) { 4488 (m->name() != vmSymbols::object_initializer_name())) {
4489 4489
4490 Symbol* name = m->name(); 4490 Symbol* name = m->name();
4491 Symbol* signature = m->signature(); 4491 Symbol* signature = m->signature();
4492 Klass* k = this_klass->super(); 4492 Klass* k = this_klass->super();