On 6/11/15 11:33 AM, Weijun Wang wrote:
Hi Sean

I remember you mentioned that although no name lookup is performed here
the permissions will be calculated correctly, even if they are granted
to different host strings which are actually equivalent (your new test
proves this). The URL strings still must be resolved somewhere else to
make this happen. Can you add a comment on where?

Yes, I can do that, and there is some info in the bug about this. Basically, the CodeSource URL will be canonicalized (and resolved through the name service if applicable) by the policy provider when determining what permissions to grant (at this point it will call CodeSource.implies which will trigger it). So you still may take a performance hit at some point, but only if a permission check is needed. I should have also pointed out that this improvement benefits apps that don't have a SecurityManager enabled (the startup/loading of classes should be faster).

--Sean


Thanks
Max

On 06/11/2015 09:54 PM, Sean Mullan wrote:
This is the fifth in a series of fixes for JEP 232 (Improve
Secure Application Performance) [1].

webrev:
http://cr.openjdk.java.net/~mullan/webrevs/6826789/webrev.00/
bug: https://bugs.openjdk.java.net/browse/JDK-6826789

This fix changes the keys used in the ProtectionDomain cache in
SecureClassLoader from URLs to Strings. The URL.hashCode method can
trigger a potentially expensive name service lookup. The String form of
the URL avoids that lookup, resulting in a big performance improvement.

Thanks,
Sean

[1] http://openjdk.java.net/jeps/232

Reply via email to