-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add openJDK 20 compatibility #6758
Conversation
b0b5a20
to
21f56ec
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NACK
Bisq crashes at startup.
What are the concrete improvements? We are conservative with updates due security risks (not about the JDK but about 3rd party libs). |
can you please share the logs..? works fine for me under different jdk versions..
There is no improvement from user perspective here. But as a developer one can run the newest production ready JDK with all the improvements. I also did not add any new 3rd party lib. Just updated the ones that were already used. |
Start Bisq and click on "Funds" in the top menu.
I haven't looked at the updated libraries yet. What are the concrete improvements? |
525cf14
to
c14f67e
Compare
Thanks @alvasw for sharing the log! (seems similar to #5624) I was able to simulate and the stacktrace is preceded by java.lang.reflect.InaccessibleObjectException: Unable to make boolean java.lang.reflect.AccessibleObject.setAccessible0(boolean) accessible: module java.base does not "opens java.lang.reflect" to unnamed module @4738a206 which means that the warning that you might saw before:
has changed to throw exception in Java 17+.. and we need to add javafx libraries explicitly so it can be reached without reflection.. so this should work now (please give it a try) While updating the libs I did hit the issue with
Working with newest production ready tech stack..... |
c14f67e
to
72d9efe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @napoly,
Unfortunately, updating the JDK to a version above 15 breaks many things in the JFoenix library. The worst part is that all exceptions are triggered at run-time, making finding the issues extremely hard. I cloned and debugged the upstream project to find the root causes. The upstream build.gradle file cheats by manually exporting the needed classes (see build.gradle).
You can see the compile errors after targeting OpenJDK 20 and JavaFX 20 in the upstream project. So the best thing to do is to fork JFoenix, fix the root cause, and point Bisq to the fixed library. I'm not sure if you want to do it. Do you want to do it?
hmm.. sounds like a suicide mission.. if I look closely at JFoenix repository it seems more less abandoned.. I unfortunately don't think it's in my powers to keep that repo alive and thriving.. could we just drop it? as I don't think it adds that much value.. as far as I understand it just adds "perky" stuff like ripple effect over text field, secondary progress bar..... we should be fine with pure JavaFX and if not then use some up to date lib like MaterialFX |
I don't think we should invest in such a large effort. In Bisq 2 we have avoided JFoenix and developed our own components, but there is still stuff missing like input validation support. Doing that in Bisq 1 would not add any value to the user and as the project has a limited lifetime the lack of upgrade compatibility is less critical. |
OK so I'm closing this one.. according to https://endoflife.date/java there is a security update till 30 Sep 2026 for Java 11 LTS |
OpenJFX 11 has been EOL for over a year; upstream uses OpenJFX 15 which is also EOL. According to <bisq-network/bisq#6758>, the application does not function with later versions, and has a limited remaining lifespan as there is a new major version that uses more modern versions. It looks like that version officially supports OpenJDK 22, which is also EOL, but hopefully it will work with 21 or 23. Some work was done already to package it here: <NixOS#318594>.
OpenJFX 11 has been EOL for over a year; upstream uses OpenJFX 15 which is also EOL. According to <bisq-network/bisq#6758>, the application does not function with later versions, and has a limited remaining lifespan as there is a new major version that uses more modern versions. It looks like that version officially supports OpenJDK 22, which is also EOL, but hopefully it will work with 21 or 23. Some work was done already to package it here: <NixOS#318594>.
Title says it all. Had to update Gradle, Mockito, johnrengelman and kotlin plugins..