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.
> >
>

Reply via email to