Hi everyone, The purpose of this thread was to discuss dropping Java 11 support and requiring Java 17 as the minimum version for Iceberg Java modules.
Regarding Java 25, I agree that adopting it now is a much larger effort, primarily due to upstream dependencies like Hadoop. Specifically, the removal of the SecurityManager and issues with Subject.doAs() need to be resolved in Hadoop before we can fully support JDK 25. It seems there is a strong consensus for dropping Java 11. I will move forward with creating the necessary update/cleanup PR for the next major release. Thoughts ? Regards, JB On Fri, Nov 21, 2025 at 8:02 PM Holden Karau <[email protected]> wrote: > > FWIW all non-EOL versions of Spark support JDK17. JDK25 support is going to > take a hot minute though in Spark land. > > On Fri, Nov 21, 2025 at 2:47 AM Maximilian Michels <[email protected]> wrote: >> >> +1 for dropping Java 11. Is it considered EOL by most vendors. >> >> On Fri, Nov 21, 2025 at 7:25 AM Steven Wu <[email protected]> wrote: >> > >> > Thanks everyone for the feedback on JDK 25. It should not be tied to the >> > decision of dropping JDK 11 support. We can add it whenever the upstream >> > blockers are resolved. >> > >> > On Thu, Nov 20, 2025 at 10:13 PM Cheng Pan <[email protected]> wrote: >> >> >> >> Moving to JDK 17+ is indeed a good thing, JDK 17 is a de facto new >> >> baseline for modern Java stacks, it was adopted by Maven, Gradle, Spring, >> >> Spark, Jackson3 and many popular Java projects as the minimal supported >> >> Java version. >> >> >> >> For JDK 25, I think the bigdata projects are majorly blocked by Hadoop >> >> (currently the Hadoop UGI does not work on JDK 23+ due to JDK >> >> SecurityManager changes), the fixes already landed in Hadoop trunk >> >> branch, and suppose to be ported to branch-3.4, the next version Hadoop >> >> 3.4.3 will unlock this. >> >> >> >> Thanks, >> >> Cheng Pan >> >> >> >> >> >> >> >> On Nov 21, 2025, at 13:55, Manu Zhang <[email protected]> wrote: >> >> >> >> I'm encountering several issues with JDK 11, which prompted me to remove >> >> it in the PR mentioned by Kevin. >> >> >> >> 1. Stuck with ORC-1.9.x which had CVE[1] and low release cadence >> >> 2. Upcoming Spark 4.1 can no longer target JDK11[2] >> >> 3. Upgrade to datafusion-comet 0.11.0 failed[3], although it has set >> >> JDK11 as target. >> >> >> >> Hence, I also support dropping Java 11, and we don't need workarounds >> >> here and there. >> >> >> >>> We will still have 3 LTS releases (17, 21, 25) after dropping Java 11. >> >> >> >> I don't think we can have JDK25 till Spark, Flink and other dependencies >> >> support it >> >> >> >>> what does that make the minimum supported spark version >> >> >> >> That will be Spark 3.4 or Spark 3.5 if we drop 3.4 in 1.11 as well. >> >> >> >> >> >> [1] https://github.com/apache/iceberg/issues/14391 >> >> [2] >> >> https://github.com/apache/iceberg/pull/14155/commits/53bc376e5bf71a8f802c28186de943aff01d27bc#diff-5392a130b5f4f17e365379befee19dd4105817da777df9b8699b5e5704ce4d68R54 >> >> [3] https://github.com/apache/iceberg/pull/14591 >> >> >> >> Regards, >> >> Manu >> >> >> >> >> >> On Fri, Nov 21, 2025 at 5:00 AM Kevin Liu <[email protected]> wrote: >> >>> >> >>> 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 >> >> >> >> > > > > -- > Twitter: https://twitter.com/holdenkarau > Fight Health Insurance: https://www.fighthealthinsurance.com > Books (Learning Spark, High Performance Spark, etc.): https://amzn.to/2MaRAG9 > YouTube Live Streams: https://www.youtube.com/user/holdenkarau > Pronouns: she/her
