Thanks for driving this. +1 on dropping Java 11, the ecosystem has already moved on, and Java 17 is the new baseline.
For Java 25, I think it’s safer to say it’s not officially supported yet at this moment. Yufei On Sat, Nov 22, 2025 at 2:18 AM Jean-Baptiste Onofré <[email protected]> wrote: > 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 >
