Thanks for starting the convo, JB. I'm in favor of dropping Java 11 support. I see Manu has started a draft PR to remove java 11 [1]. This gives a good overview of the current places where java 11 is used.
Depending on the scope of the work, I think we can also target the next Iceberg release (1.11). Best, Kevin Liu [1] https://github.com/apache/iceberg/pull/14400/files On Thu, Nov 20, 2025 at 12:28 PM Steve Loughran <[email protected]> wrote: > JDK25 is fairly traumatic security-API wise; not of direct relevance to > iceberg AFAIK. > > With a minimum of java17, what does that make the minimum supported spark > version (i.e what version of spark supports java17?) > > On Thu, 20 Nov 2025 at 06:51, Eduard Tudenhöfner <[email protected]> > wrote: > >> 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 >>>> >>>
