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 lambda-dev
mailing list