Oracle and OpenJDK builds behave the same as each other now. The differences are in terms of licensing, length of support, and release cadence. IMO most Java devs should be using one of the third-party OpenJDK distributions (e.g. Corretto, Zulu, AdoptOpenJDK) rather than vanilla OpenJDK these days, because of the new OpenJDK policy that public updates will cease for major versions after 6 months.
On Mon, Oct 14, 2019 at 11:07 AM leerho <[email protected]> wrote: > Thanks, Gian, > > Your references are helpful and I am studying them. > > I didn't see any references to OpenJDK vs Oracle's JDKs. > > Are there any differences in the way Unsafe calls (or other hidden classes) > are handled by OpenJDK? Or is this a "don't care" as far as Druid is > concerned? Are the version numbers between Oracle and OpenJDK always > aligned? > > > Lee. > > > > On Fri, Oct 11, 2019 at 5:45 PM Gian Merlino <[email protected]> wrote: > > > You didn't address this message to me, but in Druid most of the work for > > Java 9+ compatibility is mentioned in this master issue, which you might > > find helpful: https://github.com/apache/incubator-druid/issues/5589. > > Skimming the list, these might be particularly relevant to DataSketches: > > > > - https://github.com/apache/incubator-druid/pull/7487 (cleaner > operations) > > - https://github.com/apache/incubator-druid/pull/7466 (ByteBuffer unmap > > operation) > > - https://github.com/apache/incubator-druid/pull/7576 (Remove direct > > references to Unsafe) > > > > Btw, it would be better, I think, to address emails to the list at large. > > It encourages more people to participate. If Roman is a subscriber he > would > > get a copy anyway. If not, you could encourage him to subscribe. > > > > On Fri, Oct 11, 2019 at 3:13 PM leerho <[email protected]> wrote: > > > > > Roman, > > > > > > I hope you are doing well. > > > > > > I really appreciate the contributions you made to our Memory component! > > > > > > Given that Druid has made its code base compatible with OpenJDK 11, we > > > could use your help in what changes do we need to make to make that > > happen > > > for DataSketches. As I recall, our DataSketches library was not the > only > > > Druid dependency that took advantage of Unsafe. So I assume you have > > been > > > down this path :) > > > > > > Currently, I have a check in the static initializer in > Memory/UnsafeUtil: > > > parseJavaVersion(...) that checks the string returned from > > > System.getProperty("java.version"). If that string does not contain > > "1.8" > > > or "8" it will throw an error. Given that we have not tested with JDK > 9, > > > 10, 11 or 12, I felt it was safer to explicitly throw rather than > having > > > the users experience some weird failure later that may be difficult to > > > debug. > > > > > > With only one minor exception (which we could easily fix) the Memory > > > component is the only place where Unsafe is used. However, we do use > > > reflection to gain internal access to a number of other classes > including > > > ByteBuffer, Cleaner, and Bits. > > > > > > Looking forward to hearing from you. > > > > > > Cheers, > > > > > > Lee. > > > > > >
