Hi, Yes, the fact that the build passes on JDK 11 is a mystery to me at this point. I'll have a look at the links you mentioned. I also really like your Java 8 effort towards Thrift. Thanks
Niels On Fri, May 5, 2023 at 11:08 PM Fokko Driesprong <fo...@apache.org> wrote: > Hi Niels, > > Thanks for raising this. I'm having trouble understanding what you're > running into. Looks like the CI pass on Java 11+ > < > https://github.com/apache/avro/blob/master/.github/workflows/test-lang-java.yml#L41-L46 > >? > Are the Unsafe paths not hit by the tests? > > If it helps, four years ago, I also did some similar changes in Parquet > <https://github.com/apache/parquet-mr/pull/654>. I think we can port these > changes also to Avro. Unfortunately, we still need to support Java8, since > big > projects like Hive <https://issues.apache.org/jira/browse/HIVE-22415> are > still not on Java11. Related to this, I also opened up a PR to bring back > Java 8 support for Thrift <https://github.com/apache/thrift/pull/2785>, I > don't think that we can drop this soon. > > Kind regards, > Fokko Driesprong > > > Op vr 5 mei 2023 om 15:08 schreef Christophe Le Saëc <chles...@gmail.com>: > > > As far as i understood, MethodHandle is design to replace Unsafe call > > < > > > http://mydailyjava.blogspot.com/2018/04/jdk-11-and-proxies-in-world-past.html > > > > > If not, forget my first message. > > > > Le ven. 5 mai 2023 à 14:37, Oscar Westra van Holthe - Kind < > > os...@westravanholthe.nl> a écrit : > > > > > Hi Niels, > > > > > > This is a very good plan. Though personally I prefer using the latest > LTS > > > version, I think we should require the oldest, actively supported LST > > > version. For the next 5 months, this means Java 11. > > > > > > This link may be of interest here: https://endoflife.date/java > > > > > > > > > Kind regards, > > > Oscar > > > > > > On Fri, 5 May 2023 at 12:44, Niels Basjes <ni...@basjes.nl> wrote: > > > > > > > Hi, > > > > > > > > Currently several build plugins cannot be upgraded because the newer > > > > versions require Java 11+. > > > > So I'm working on this and I have a partially working pull request > > > > > > > > https://issues.apache.org/jira/browse/AVRO-3716 > > > > https://github.com/apache/avro/pull/2118 > > > > > > > > One of the things I ran into is that currently the main library MUST > be > > > > built with JDK 8 because otherwise the code referring to theUnsafe > > simply > > > > won't build. > > > > Now there is already special code in place to use a reflection based > > > system > > > > that is used if you are not running on Java 8. > > > > > > > > Since "everyone" I know is already running on Java 11 and 17 I > propose > > to > > > > - kick theUnsafe code, making the code in that area a lot simpler. > > > > - Build the entire project with JDK 17 (or 11, but I prefer going to > > the > > > > latest LTS version) > > > > - Make it still produce Java 8 compliant code where possible (so just > > > about > > > > everywhere but not Thrift). > > > > - Have checks in place to do a simple basic test using Java 8 > > > (toolchains) > > > > > > > > One of the effects is that the build on Github will no longer use the > > > > "matrix" build and will build the project only once (I expect it to > > > > become faster because of that). > > > > > > > > Your opinions on this? > > > > > > > > -- > > > > Best regards / Met vriendelijke groeten, > > > > > > > > Niels Basjes > > > > > > > > > > > > > -- > > > > > > ✉️ Oscar Westra van Holthe - Kind <os...@westravanholthe.nl> > > > > > > -- Best regards / Met vriendelijke groeten, Niels Basjes