Review Request JDK-8202113: Reflection API is causing caller classes to leak
mandy chung
mandy.chung at oracle.com
Sat Apr 28 09:44:52 UTC 2018
Webrev:
http://cr.openjdk.java.net/~mchung/jdk11/webrevs/8202113/webrev.00/
The reflection machinery stores the caller class in each AccessibleObject
such that it can skip the access check if access to a member has been
verified for a given caller. At the first time accessing the
AccessibleObject,
it creates an Accessor object and then cache for subsequent use. This
cached
Accessor object keeps a reference to the AccessibleObject object that
will keep the caller class alive.
The implementation has a root object for each AccessibleObject and
the API returns a child object for users to access (that may suppress
access check via setAccessible). The caller class is set in the cache
of the child object. This patch proposes to change ReflectionFactory
newXXXAccessor methods to ensure to pass the root object rather than
the child object. The cache of the root object is always null.
Mandy
More information about the core-libs-dev
mailing list