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