Index: vm/vmcore/src/class_support/C_Interface.cpp =================================================================== --- vm/vmcore/src/class_support/C_Interface.cpp (revision 532349) +++ vm/vmcore/src/class_support/C_Interface.cpp (working copy) @@ -217,7 +217,7 @@ { assert(m); return ((Method *)m)->is_public(); -} +} //method_is_public Boolean method_is_strict(Method_Handle m) @@ -2262,6 +2262,11 @@ for(; ch; ch = ch->get_super_class()) { m = ch->lookup_method(name, desc); if (m != NULL) { + // IllegalAccessError will be thrown if implementation of + // interface method is not public + if (method->get_class()->is_interface() && !m->is_public()) { + return NULL; + } // The method m can only override mh/method // if m's class can access mh/method (JLS 6.6.5). if(m->get_class()->can_access_member(method)) {