I would also be in favor of moving to JDK 17 but we need to check what the implications are.
On Thu, Nov 20, 2025 at 5:36 AM Steven Wu <[email protected]> wrote: > Yeah, the Flink benchmark shouldn't be a blocker, as the 1.20 module > itself can be built and run with Java 17. > > I am in favor of dropping Java 11 support. We probably can also add Java > 25 to the CI build after dropping Java 11, as JDK 25 (LTS) was released on > Sep 25. We will still have 3 LTS releases (17, 21, 25) after dropping Java > 11. > > I tend to be a bit more aggressive in dropping old versions. Let's see > what others think. > > On Wed, Nov 19, 2025 at 10:52 AM Jean-Baptiste Onofré <[email protected]> > wrote: > >> Hi everyone, >> >> I worked on the Gradle 9.x upgrade for Iceberg. Gradle 9.2.x requires >> JDK17 minimum. >> >> I did a quick pass on Iceberg modules, I see all modules support JDK17. >> >> There is a known issue with JDK 17 in the Flink 1.20 module for a >> specific benchmark. The comment in >> >> flink/v1.20/flink/src/jmh/java/org/apache/iceberg/flink/sink/shuffle/StatisticsRecordSerializerBenchmark.java. >> This benchmark in 1.20 only works with Java 11 probably due to usage >> of ArraysAsListSerializer in FlinkChillPackageRegistrar. Flink 2.0 and >> above switched to DefaultSerializers#ArraysAsListSerializer in Kryo >> 5.6. >> Using Java 17 would result in the following error..."This affects only >> that JMH benchmark, not the entire Flink 1.20 module. The module can >> still be built and run with JDK 17; the benchmark has a runtime issue >> due to Java module access restrictions. >> I think we can live with that, waiting to remove Flink 1.20 in the future. >> >> Regarding this, I would like to start a discussion to define JDK17 min >> in Iceberg. >> >> Thoughts ? >> >> NB: if we have a consensus, I would be happy to start an >> update/cleanup PR and prepare the next "major" release with JDK17 min. >> >> Regards >> JB >> >
