[ https://issues.apache.org/jira/browse/BOOKKEEPER-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16002163#comment-16002163 ]
Enrico Olivelli edited comment on BOOKKEEPER-1049 at 5/9/17 6:59 AM: --------------------------------------------------------------------- The best solution is to use Native Code to access the internal "fd" field inside the FieldDescriptor object: - we need the 'fd' only if we can load our native library - accessing object internals using JNI is allowed by JigSaw http://mail.openjdk.java.net/pipermail/core-libs-dev/2017-May/047510.html I will create a patch based on the work of BOOKKEEPER-816 which introduces a BookKeeper specific native-io library was (Author: eolivelli): The better solution is to use Native Code to access the internal "fd" field inside the FieldDescriptor object: - we need the 'fd' only if we can load our native library - accessing object internals using JNI is allowed by JigSaw http://mail.openjdk.java.net/pipermail/core-libs-dev/2017-May/047510.html I will create a patch based on the work of BOOKKEEPER-816 which introduces a BookKeeper specific native-io library > Run BookKeeper on Java9 > ----------------------- > > Key: BOOKKEEPER-1049 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-1049 > Project: Bookkeeper > Issue Type: Improvement > Environment: java9 > Reporter: Enrico Olivelli > Assignee: Enrico Olivelli > Fix For: 4.6.0 > > > I am tring to run BookKeeper on Java9, a part from simple issues: > - exclude the transitive dependency to jdk.tools in bookkeeer-benchmarks > - fix a warning due to the fact the Class.forName in java9 is deprecated and > we are running javac with the "Werror" option (warning = error) > we have a real stopper, in fact we want to access the low level ID of > FileDescriptors using the reflaction and by default this is not allowed. > This is the error: > {code} > java.lang.AssertionError > at > org.apache.bookkeeper.util.NativeIO.getFieldByReflection(NativeIO.java:63) > at > org.apache.bookkeeper.util.NativeIO.getSysFileDescriptor(NativeIO.java:75) > at > org.apache.bookkeeper.bookie.JournalChannel.<init>(JournalChannel.java:218) > at > org.apache.bookkeeper.bookie.JournalChannel.<init>(JournalChannel.java:97) > at > org.apache.bookkeeper.bookie.JournalChannel.<init>(JournalChannel.java:86) > at > org.apache.bookkeeper.bookie.UpgradeTest.writeJournal(UpgradeTest.java:83) > at > org.apache.bookkeeper.bookie.UpgradeTest.newV1JournalDirectory(UpgradeTest.java:114) > at > org.apache.bookkeeper.bookie.UpgradeTest.testUpgradeV1toCurrent(UpgradeTest.java:192) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)