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;
      }
  

Reply via email to