Skip to content
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

Upgrade to JDK 11+ #648

Closed
7 tasks done
jpschewe opened this issue May 31, 2018 · 12 comments
Closed
7 tasks done

Upgrade to JDK 11+ #648

jpschewe opened this issue May 31, 2018 · 12 comments
Assignees
Labels
Milestone

Comments

@jpschewe
Copy link
Owner

jpschewe commented May 31, 2018

JDK 10 is out. Things to consider:

@eengstrom
Copy link
Collaborator

Just a thought based upon recent news: Do we use serialization anywhere? If so:

https://developers.slashdot.org/story/18/05/26/0520227/oracle-calls-java-serialization-a-horrible-mistake-plans-to-dump-it

@jpschewe
Copy link
Owner Author

I don't believe we use serialization because we want to be compatible with other tools that may not be Java.

@jpschewe jpschewe modified the milestones: 13.0, 14.0 Aug 17, 2018
@jpschewe jpschewe changed the title Look into upgrading to JDK 10 Look into upgrading to JDK 11 Nov 23, 2018
@jpschewe
Copy link
Owner Author

OpenJDK supports zip and tar downloads of the JVM for platforms. This makes packaging fairly easy. I suspect this is the direction to go for an easier install.

I also see that JavaFX is include in OpenJDK 11, which may be a direction to go for the stand-alone Java applications.

@jpschewe jpschewe mentioned this issue Jan 1, 2019
11 tasks
@jpschewe
Copy link
Owner Author

jpschewe commented Feb 4, 2019

Launch4j may have an issue with this https://sourceforge.net/p/launch4j/bugs/186/

@jpschewe
Copy link
Owner Author

log4j uses multi-release jar files. i handled this in another project with this commit jpschewe/google-calendar-agenda-cleanup@907c43e.
In this case the jar file was built with opendjk 8, but run on openjdk 11.

@jpschewe
Copy link
Owner Author

I checked the other day and openjdk 12 is the current download, there is no download for openjdk 11. Ubuntu 18.04 is currently shipping openjdk 11 and no option for 12 yet.

@jpschewe
Copy link
Owner Author

jpschewe commented May 26, 2019

SpotBugs doesn't support java 11 yet. I tried running it with Java 11 and got all kinds of warnings about extra null checks that aren't in the code. This is using version 3.1.12 of SpotBugs.

jpschewe added a commit that referenced this issue May 26, 2019
The main reason for this switch is that the default stylesheet doesn't
support XSLT 2.0 like it says it does and saxon errors out. I was
originally not using saxon, however when switching to java 11, this
broke.

See the following issues for details
* spotbugs/spotbugs-gradle-plugin#114
* spotbugs/spotbugs#958

Issue #648
@jpschewe
Copy link
Owner Author

jpschewe commented May 29, 2019

I build using openjdk 11 under Linux and then tried running under openjdk 12 under Windows 10. The launch4j executable complained that java 11.0.0 was required.

However I was able to launch it from the command line. Things seem to work fairly well, except launching the html files.

I got an error that fll-sw.html couldn't be found even though the correct path was specified.

Got some warnings about dnsjava

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.xbill.DNS.ResolverConfig (file:/C:/Users/User/Desktop/fll-sw-13.5.1-beta.190+g4484552/fll-sw-13.5.1-beta.190+g4484552/lib/dnsjava-2.1.8.jar) to method sun.net.dns.ResolverConfiguration.open()
WARNING: Please consider reporting this to the maintainers of org.xbill.DNS.ResolverConfig
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

This is being tracked at dnsjava/dnsjava#8

@jpschewe
Copy link
Owner Author

Some clues on getting the Windows executable to work with openjdk 12

The base problem is that there is no installer for openjdk, therefore the registry entries don't get set and the fll-sw.exe (launch4j) thinks there is no Java VM installed, even if it's on the path.
It sounds like bundling the JVM with the application is the best solution. Then it's no concern.

@jpschewe
Copy link
Owner Author

jpschewe commented Jul 4, 2019

The method Predicate::not will be quite useful when moving to Java 11. See the enumerate functions in TournamentScheduleInfo.

I think that to move to Java 11 we should have the JDK bundled with the at least the Windows installer, #399, so that we don't have issues with users needing to figure out how to install OpenJDK.

@jpschewe jpschewe changed the title Look into upgrading to JDK 11 Upgrade to JDK 11+ Jul 5, 2019
@jpschewe jpschewe modified the milestones: 14.0, 14.5 Sep 8, 2019
@jpschewe
Copy link
Owner Author

Consider using PMD instead of SpotBugs, it claims to support Java 13.

@jpschewe
Copy link
Owner Author

I have upgraded to spotbugs 2.0.1 with tool version 4.0.0-beta4, however that still shows errors around the try with resources statements.

jpschewe added a commit that referenced this issue Nov 15, 2019
Relates to issue #648.
@jpschewe jpschewe modified the milestones: 14.3, 15.0 Dec 8, 2019
@jpschewe jpschewe self-assigned this Jul 22, 2020
jpschewe added a commit that referenced this issue Jul 22, 2020
Spotbugs has problems with recognizing the bytecode that javac generates
for try with resources and thinks there are redundant checks for null.
Removing these checks from our setup until this is fixed.

Issue #648 spotbugs/spotbugs#756
jpschewe added a commit that referenced this issue Jul 22, 2020
jpschewe added a commit that referenced this issue Jul 22, 2020
Spotbugs has problems with this pattern as well under Java 11.

Issue #648 spotbugs/spotbugs#811
jpschewe added a commit that referenced this issue Jul 22, 2020
This simplifies the readability of the code.

Issue #648
jpschewe pushed a commit that referenced this issue May 4, 2024
rewrite `NativeJsTemporal` to support all common `TemporalField`s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants