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 <[email protected]>: > 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 < > [email protected]> 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 <[email protected]> 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 <[email protected]> > > >
