[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16002163#comment-16002163
 ] 

Enrico Olivelli commented on BOOKKEEPER-1049:
---------------------------------------------

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)

Reply via email to