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

Eric Milles commented on GROOVY-11105:
--------------------------------------

The release option is an alias for setting target and bootclasspath options in 
javac. The groovy compiler has target bytecode, classpath and transform 
classpath. If there is proper isolation between the two classpaths, then your 
use of Java 11 or 17 for the compiler process should be fine for Java 8 target. 
The shared class instances in ClassHelper are one place where transform 
classpath wins out. 

> Support jdk-release option for configuring the target JDK release when doing 
> the compilation
> --------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-11105
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11105
>             Project: Groovy
>          Issue Type: New Feature
>          Components: Compiler
>    Affects Versions: 4.0.12
>            Reporter: Vladimir Sitnikov
>            Priority: Major
>
> See the motivation and description in Kotlin: 
> [https://youtrack.jetbrains.com/issue/KT-29974/Add-a-compiler-option-Xjdk-release-similar-to-javacs-release-to-control-the-target-JDK-version]
>  
> Sample code that requires {{jdk-release}} option for a proper compilation, 
> and it could not be solved with "target bytecode version" alone.
> {code:java}
> import java.nio.ByteBuffer;
> ByteBuffer bb = new ByteBuffer();
> // it should compile to invokevirtual Buffer.flip()Ljava.nio.Buffer;
> // when compiling for Java 1.8 since Java 1.8 does not have ByteBuffer flip() 
> override in ByteBuffer
> // However, if the build uses JDK17 for execution, then it contains 
> ByteBuffer flip() override,
> // and Groovy would compile it to invokevirtual 
> ByteBuffer.flip()Ljava.nio.ByteBuffer
> // which would fail to execute in Java 1.8
> bb.flip();
> {code}
> See https://www.morling.dev/blog/bytebuffer-and-the-dreaded-nosuchmethoderror/
> See https://stackoverflow.com/a/61267496/1261287
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to