[bisq-network/bitcoinj] jdk8 vs jdk 10 (#17)

Oscar Guindzberg notifications at github.com
Fri Dec 28 03:57:56 UTC 2018

Here are the news:

- Remove the windows hack and so the need to use sun.* (ie cherry pick what was done on bitcoinj master upstream). 
  - I tested that and it fails. I get:
  - ``` 
       java.io.IOException: Failed to delete chain file in preparation for restore.
       at bisq.core.btc.setup.WalletConfig.startUp(WalletConfig.java:417)
       at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62)
       at com.google.common.util.concurrent.Callables$4.run(Callables.java:122)
       at java.base/java.lang.Thread.run(Thread.java:844)```
  - Apparently the windows hack is still needed. I wrote a unit test to prove the windows hack is still needed and posted a comment on the upstream issue https://github.com/bitcoinj/bitcoinj/issues/1477#issuecomment-450274821

- use openjdk10 for bitcoinj
  - I tried it and I found a lot of problems and had to make several "hacks" to make it work...
  - target 1.6 conflicted with code added to bitcoinj by bisq.
    - PeerAddress uses InetSocketAddress.getHostString() which is anotated as @since 1.7.   
    - I don't know why this works when building using oraclejdk8.
    - I had to update core/pom.xml and update maven-compiler-plugin source and target to 1.7  
  - intellij can not find most or all javafx.* packages so it does not compile
    - I deleted wallettemplate project
  - maven javadoc plugin fails, so I can not build the jar
    - Error fetching URL: http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/
    - core/pom.xml : I had to remove the reference to http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/

- Then I moved to WindowsMMapHack
  - I tried to add a copy of the sun.* classes to bitcoinj: I got an error on intellij telling me I can not add sun.* classes because they were part of the java.base module.
  - So I decided to update WindowsMMapHack instead: `jdk.internal.ref.Cleaner cleaner = ((sun.nio.ch.DirectBuffer) buffer).cleaner();`
  - It compiles using maven and does not shows red marks on intellij. 
  - But building the project on intellij still fails... it complains it can not find jdk.internal.ref nor sun.nio.ch on the build log.
  - Since I could build it with maven, I moved on.
  - I tried that with bisq and I get the same error I used to get before the fix: OverlappingFileLockException


What to do next?
- Find out the exact classes that openjdk10 uses in WindowsMMapHack and try to tune it to make it work.
- Wait for responses to https://github.com/bitcoinj/bitcoinj/issues/1477#issuecomment-450274821

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20181227/110ce8af/attachment.html>

More information about the bisq-github mailing list