Andrew Haley writes:
> Robert Lougher writes:
>
> > Had a quick look, and in Classpath-0.93 java.util.AbstractMap contains
> > a class BasicMapEntry which implements getValue(). BasicMapEntry is
> > package-private. This isn't accessible outside the package.
> >
> > In CVS HEAD, this has changed and java.util.AbstractMap contains a
> > class SimpleEntry which implements getValue(). SimpleEntry is public.
> > Obviously, this is accessible...
>
> OK, thanks. I'm working on a gcj patch now.
Done.
Andrew.
2007-04-10 Andrew Haley <[EMAIL PROTECTED]>
* java/lang/reflect/natMethod.cc (Method::invoke): In invoke also
check that the method's declaring class is accessible.
Index: natMethod.cc
===================================================================
*** natMethod.cc (revision 123473)
--- natMethod.cc (working copy)
***************
*** 173,182 ****
}
// Check accessibility, if required.
! if (! (Modifier::isPublic (meth->accflags) || this->isAccessible()))
{
Class *caller = _Jv_StackTrace::GetCallingClass (&Method::class$);
! if (! _Jv_CheckAccess(caller, declaringClass, meth->accflags))
throw new IllegalAccessException;
}
--- 173,186 ----
}
// Check accessibility, if required.
! if (! ((Modifier::isPublic (meth->accflags)
! && Modifier::isPublic (declaringClass->accflags))
! || this->isAccessible()))
{
Class *caller = _Jv_StackTrace::GetCallingClass (&Method::class$);
! if (! _Jv_CheckAccess(caller, declaringClass, meth->accflags)
! || ! _Jv_CheckAccess(caller, declaringClass,
! declaringClass->accflags))
throw new IllegalAccessException;
}