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

Paul King commented on GROOVY-11972:
------------------------------------

There are no plans to do any further 2.5 releases. We expect to release Groovy 
6 soon at which time Groovy 4.0.x will be the lowest version we expect to 
provide patch releases for.

> Groovy 2.5 doesn't support Java 25
> ----------------------------------
>
>                 Key: GROOVY-11972
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11972
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Georgii Ustinov
>            Priority: Major
>
> *Steps to reproduce:*
> 1. Consider the following single file project:
> ```groovy
> import groovy.transform.EqualsAndHashCode
> import groovy.transform.ToString
> import groovy.transform.TupleConstructor
> import java.time.LocalDateTime
> import java.time.format.DateTimeFormatter
> import java.util.function.Function
> import java.util.function.Predicate
> import java.util.stream.Collectors
> import java.util.stream.Stream
> @ToString(includeNames = true)
> @EqualsAndHashCode
> @TupleConstructor
> class Order
> { String id BigDecimal amount LocalDateTime createdAt List<String> tags = [] }
> class OrderRepository implements Iterable<Order> {
> String report(Predicate<Order> filter, Function<Order, String> formatter)
> { storage.values().stream() .filter(filter) .map(formatter) 
> .collect(Collectors.joining(System.lineSeparator())) }
> @Override
> Iterator<Order> iterator() \{ storage.values().iterator() }
> String render() {
> def fmt = DateTimeFormatter.ISO_LOCAL_DATE_TIME
> def sb = new StringBuilder()
> sb << "Repository (${size()} orders)\n"
> each { Order o ->
> sb << " • ${o.id}: ${o.amount} @ ${o.createdAt.format(fmt)} ${o.tags}\n"
> }
> sb << describe()
> sb.toString()
> }
> }
> static void main(args) {
> def repo = demo()
> println repo.render()
> def closure = \{ Order o -> "${o.id} -> ${o.amount}" }
> println repo.report(\{ it.amount > 20 } as Predicate, closure as Function)
> Stream.of(1, 2, 3).map \{ it * 2 }.forEach \{ println it }
> }
> ```
> 2. try to compile it with java 25 installed and groovy 2.5.23.
> *Expected behaviour:*
> compilation is succeeded
> *Actual behaviour:*
> ```
> Caught: BUG! exception in phase 'semantic analysis' in source unit 
> '/$USER/RunFolders/IdeaProjects/Groovy25Java25/src/Main.groovy' Unsupported 
> class file major version 69
> BUG! exception in phase 'semantic analysis' in source unit 
> '/$USER/RunFolders/IdeaProjects/Groovy25Java25/src/Main.groovy' Unsupported 
> class file major version 69
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> Caused by: java.lang.IllegalArgumentException: Unsupported class file major 
> version 69
>         at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:199)
>         at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:180)
>         at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166)
>         at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:287)
>         ... 1 more
> ```
> I am supporting groovy inside IntelliJ IDEA. Currently, we are migrating our 
> codebase to Java 25. Is it possible to bump the asm version like you did for 
> groovy 3.0.25 and release new artifact?



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

Reply via email to