On 19/03/2017 17:52, Peter Levart wrote:

Hi,

Module system implementation refresh 2017/2 (JDK-8173393) introduced new API method AccessibleObject::canAccess which can be used to test if the caller has access to the reflected member (with possible target object argument for instance members). The implementation of this method, after some parameter validation checks, delegates directly to jdk.internal.reflect.Reflection::verifyMemberAccess. This is sub-optimal. Co-located internal method AccessibleObject::checkAccess also delegates to Reflection::verifyMemberAccess, but it also uses a one-element cache of access-check decision, which greatly speeds up repeated calls by the same caller to the same reflected member. The cache could be shared between those two methods which would improve performance of code idioms like this:

When integrating with the cache came up on jigsaw-dev a few work ago then I think Mandy wanted to defer to it to JDK 10. However since canAccess is new then having is be more efficient might be good, it just mightn't be a P1/P2 for RDP2. Can you re-base the patch against jake as has changed this code and then maybe we can figure out whether to pull it into jake?

-Alan

Reply via email to