Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

May not be compatible with retrolambda 1.6.1+ #45

Closed
evant opened this issue Sep 17, 2014 · 6 comments
Closed

May not be compatible with retrolambda 1.6.1+ #45

evant opened this issue Sep 17, 2014 · 6 comments
Labels

Comments

@evant
Copy link
Owner

evant commented Sep 17, 2014

The latest versions of retrolambda no longer use the javaagent. Some modifications probably need to be done to make that work.

@evant evant added the bug label Sep 17, 2014
@meoyawn
Copy link

meoyawn commented Sep 17, 2014

same thing for me - does not work with retrolambda 1.6.1 and plugin 2.2.3
says javac exited with code 1 and no error description

@evant evant changed the title May not be compatible with retrolambda 1.6.+ May not be compatible with retrolambda 1.6.1+ Sep 21, 2014
@evant
Copy link
Owner Author

evant commented Sep 21, 2014

It looks like 1.6.1 is not working, but for a different reason than the javaagent.

Error! Failed to transform some classes                         
java.lang.SecurityException: Prohibited package name: java.lang 
        at java.lang.ClassLoader.preDefineClass(ClassLoader.java:659)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:758)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at net.orfjackal.retrolambda.NonDelegatingClassLoader.loadClass(NonDelegatingClassLoader.java:22)
        at java.lang.ClassLoader.defineClass1(Native Method)    
        at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at net.orfjackal.retrolambda.NonDelegatingClassLoader.loadClass(NonDelegatingClassLoader.java:22)
        at net.orfjackal.retrolambda.LambdaUsageBackporter$InvokeDynamicInsnConvertingMethodVisitor.loadClass(LambdaUsageBackporter.java:173)
        at net.orfjackal.retrolambda.LambdaUsageBackporter$InvokeDynamicInsnConvertingMethodVisitor.backportLambda(LambdaUsageBackporter.java:161)
        at net.orfjackal.retrolambda.LambdaUsageBackporter$InvokeDynamicInsnConvertingMethodVisitor.visitInvokeDynamicInsn(LambdaUsageBackporter.java:154)
        at net.orfjackal.retrolambda.asm.ClassReader.readCode(ClassReader.java:1439)
        at net.orfjackal.retrolambda.asm.ClassReader.readMethod(ClassReader.java:1017)
        at net.orfjackal.retrolambda.asm.ClassReader.accept(ClassReader.java:693)
        at net.orfjackal.retrolambda.asm.ClassReader.accept(ClassReader.java:506)
        at net.orfjackal.retrolambda.LambdaUsageBackporter.transform(LambdaUsageBackporter.java:22)
        at net.orfjackal.retrolambda.Retrolambda$1.transform(Retrolambda.java:42)
        at net.orfjackal.retrolambda.BytecodeTransformingFileVisitor.visitFile(BytecodeTransformingFileVisitor.java:25)
        at net.orfjackal.retrolytecodeTransformingFileVisitor.visitFile(BytecodeTransformingFileVisitor.java:11)
        at java.nio.file.Files.walkFileTree(Files.java:2670)    
        at java.nio.file.Files.walkFileTree(Files.java:2742)    
        at net.orfjackal.retrolambda.Retrolambda.visitFiles(Retrolambda.java:52)
        at net.orfjackal.retrolambda.Retrolambda.run(Retrolambda.java:39)
        at net.orfjackal.retrolambda.Main.main(Main.java:26)

@evant
Copy link
Owner Author

evant commented Sep 21, 2014

I opened an issue with retrolamba because I don't think this is anything the gradle plugin is doing. luontola/retrolambda#34

@luontola
Copy link

The javaagent is optional in latest Retrolambda versions, but it's still supported. In some cases it may be necessary to fallback to using the javaagent (e.g. if the JDK implementation changes), so it should be good to provide an option for using it.

But as you noticed, the "java.lang.SecurityException: Prohibited package name: java.lang" problem is unrelated to the javaagent.

@evant
Copy link
Owner Author

evant commented Sep 24, 2014

Alright I'll add an option to enable/disable the javaagent. Right now it's based on the retrolambda version, but it would be useful anyway since that can't always be determined.

@evant
Copy link
Owner Author

evant commented Oct 3, 2014

Fixed in retrolambda 1.6.2

@evant evant closed this as completed Oct 3, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants