RFR (S) 8158851: MH.publicLookup() init circularity, triggered by custom SecurityManager with String concat and -limitmods java.base

Alan Bateman Alan.Bateman at oracle.com
Tue Jun 7 13:51:23 UTC 2016


On 07/06/2016 14:38, Aleksey Shipilev wrote:

> Hi,
>
> Please review a fix for a MH.publicLookup() circularity, which is
> triggered if you run existing String concat tests with -limitmods java.base:
>    https://bugs.openjdk.java.net/browse/JDK-8158851
>
> Webrev:
>    http://cr.openjdk.java.net/~shade/8158851/webrev.01/
As a short term fix then this looks okay. It may be (once there is 
another round of work on MethodHandles w/modules) that PL moves back to 
java.lang.Object but that has many discussion points for another thread.

If you want then the doPriv in LookupHelper can do away as it is not 
required when you can guarantee that it is initialized before a security 
manager is set.

One downside to initializing PL early is that is LookupHelper will 
trigger some ASM to be loaded. This could avoid by generating it at link 
time and loading the class bytes as resource. Hard to know if it's worth 
it as the first lambda usage is going to trigger these classes to load 
anyway.

-Alan.


More information about the jigsaw-dev mailing list