diff -r 7a628ca8ac97 -r 2db6fe33afc2 hotspot/src/share/vm/runtime/reflection.cpp --- a/hotspot/src/share/vm/runtime/reflection.cpp Tue Oct 14 13:10:50 2014 -0700 +++ b/hotspot/src/share/vm/runtime/reflection.cpp Tue Jul 22 16:16:51 2014 +0400 @@ -507,7 +507,8 @@ if (access.is_protected()) { if (!protected_restriction) { // See if current_class (or outermost host class) is a subclass of field_class - if (host_class->is_subclass_of(field_class)) { + // An interface may not access protected members of j.l.Object + if (!host_class->is_interface() && host_class->is_subclass_of(field_class)) { if (access.is_static() || // static fields are ok, see 6622385 current_class == resolved_class || field_class == resolved_class ||