Lambda in security manager initialization fail

Alan Bateman Alan.Bateman at oracle.com
Mon Mar 30 20:29:54 UTC 2015


On 30/03/2015 21:01, Peter Levart wrote:
> :
>
> I think that java.lang.invoke infrastructure initialization should not 
> need to have access to system class loader. All types it deals with 
> are loadable by bootstrap class loader. I too have already encountered 
> a problem because of that and my suggestion was to create an internal 
> method similar to MethodType.fromMethodDescriptorString() that would 
> treat null ClassLoader as bootstrap class loader and use this method 
> for internal initialization instead of the public one:
>
> http://cr.openjdk.java.net/~plevart/jdk9-dev/MethodType.fromDescriptor/webrev.01/ 
>
>
> With this patch, your A3 security manager using lambdas works normally.
Another one that has come once or twice is using method references in 
code that executes early in the startup. There are boxing cases that use 
TypeConvertingMethodAdapter.boxingDescriptor and hence the formatter 
code that tries to locate locale providers using the system class 
loader. This can lead to recursive initialization issues that pop out as 
BootstrapMethodError. So if we are making this area more robust then 
this might need to be looked at too.

-Alan


More information about the mlvm-dev mailing list