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
