[ 
https://issues.apache.org/jira/browse/GROOVY-8727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16601253#comment-16601253
 ] 

Dimitry Polivaev commented on GROOVY-8727:
------------------------------------------

My asm bug report was closed with following statement: 
 

"I will close this issue as work as intended even if you may think it's 
surprising, currently ASM ClassReader support Java 11 (and even Java 12) so it 
recognizes Java 11 new attributes (here NestMembers). But here you are using a 
ClassVisitor which is configured to only recognize the ASM6 API, thus it fails 
at runtime with an UnsupportedOperation exception.

Even if NestMembers (and NestHosts) are class file attributes, they can not be 
ignored because the JVM access control semantics changes depending on these 
attributes (see JEP 181 [1]).

So either you do not support Java 11 class file or you change the visitor to 
accept ASM7 semantics and also change you visior accordingly.

[1] [http://openjdk.java.net/jeps/181]";

It means that the fix should be implemented on Groovy side.

> JDK 11 Compilation Failure: ClassVisitor.visitNestMemberExperimental throws 
> UnsupportedOperationException 
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-8727
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8727
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 3.x, 2.5.1
>            Reporter: Misagh Moayyed
>            Priority: Major
>
> *Description:*
> Using JDK 11 and Gradle 4.9, the following compilation error is seen:
>  
> {code:java}
> > Task :core:cas-server-core-tickets:compileTestGroovy FAILED
> startup failed:
> General error during class generation: java.lang.UnsupportedOperationException
> java.lang.UnsupportedOperationException
>       at 
> groovyjarjarasm.asm.ClassVisitor.visitNestMemberExperimental(ClassVisitor.java:248)
>       at groovyjarjarasm.asm.ClassReader.accept(ClassReader.java:651)
>       at groovyjarjarasm.asm.ClassReader.accept(ClassReader.java:391)
>       at 
> org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:83)
>       at 
> org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:254)
>       at 
> org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:192)
>       at 
> org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:172)
>       at 
> org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:128)
>       at 
> org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:59)
>       at 
> org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46)
>       at 
> org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:112)
>       at 
> groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206)
>       at 
> groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:235)
>       at 
> groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:114)
>       at 
> org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createMethodNode(MemberSignatureParser.java:95)
>       at 
> org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:195)
>       at 
> org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getMethods(DecompiledClassNode.java:103)
>       at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:399)
>       at 
> org.codehaus.groovy.classgen.AnnotationVisitor.checkIfMandatoryAnnotationValuesPassed(AnnotationVisitor.java:168)
>       at 
> org.codehaus.groovy.classgen.AnnotationVisitor.visit(AnnotationVisitor.java:80)
>       at 
> org.codehaus.groovy.classgen.ExtendedVerifier.visitAnnotation(ExtendedVerifier.java:311)
>       at 
> org.codehaus.groovy.classgen.ExtendedVerifier.visitAnnotations(ExtendedVerifier.java:157)
>       at 
> org.codehaus.groovy.classgen.ExtendedVerifier.visitConstructorOrMethod(ExtendedVerifier.java:112)
>       at 
> org.codehaus.groovy.classgen.ExtendedVerifier.visitMethod(ExtendedVerifier.java:108)
>       at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1103)
>       at 
> org.codehaus.groovy.classgen.ExtendedVerifier.visitClass(ExtendedVerifier.java:91)
>       at 
> org.codehaus.groovy.control.CompilationUnit$18.call(CompilationUnit.java:827)
>       at 
> org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087)
>       at 
> org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:631)
>       at 
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:609)
>       at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:586)
>       at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:565)
>       at 
> org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:179)
>       at 
> org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:57)
>       at 
> org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:77)
>       at 
> org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:65)
>       at 
> org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:88)
>       at 
> org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:76)
>       at 
> org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:42)
>       at 
> org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:46)
>       at 
> org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:30)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:101)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>       at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>       at 
> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155)
>       at 
> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137)
>       at 
> org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
>       at 
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
>       at 
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>       at 
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
>       at java.base/java.lang.Thread.run(Thread.java:834)
> 1 error
> {code}
> *Logs:*
> Full output of the failure can be seen at: 
> [https://travis-ci.org/apereo/cas/jobs/409569424]
>  
> *To duplicate:*
>  # Install JDK 11
>  # Clone the branch below
>  # 
> {code:java}
> git clone depth 1 --single-branch branch=travis-ci-jdk11 
> g...@github.com:apereo/cas.git{code}
>  # 
> {code:java}
> Execute the following command as does Travis CI:
> ./gradlew --stacktrace --build-cache --configure-on-demand --no-daemon build 
> -x test -x javadoc -x check -DskipNpmLint=true 
> -DskipNestedConfigMetadataGen=true --parallel{code}
> The failure should occur in:
> {code:java}
> :core:cas-server-core-tickets:compileTestGroovy FAILED{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to