You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MergedLogEntryDisplayController uses netscape.javascript.JSObject to bridge the
Olog WebView to Java. That class was provided by the JDK's jdk.jsobject module,
which is removed in JDK 26, so javafx.web no longer compiles or resolves there.
Since JavaFX 24 that module is shipped with JavaFX as the upgradable org.openjfx:jdk-jsobject artifact; this adds it to the classpath. It is versioned
independently of openjfx.version because the standalone artifact only exists from
25 onwards. On JDK 25 and earlier the platform module still takes precedence, so the
dependency is inert; on JDK 26 it supplies netscape.javascript.
Together with #3851 (which replaces the removed Thread.stop()), this clears the
second and final compile blocker, so the project builds and runs on JDK 26.
Checklist
Testing:
The feature has automated tests
Tests were run
If not, explain how you tested your changes
Built the full reactor and ran the test suite on both the JDK 21 target
and JDK 26 (2332 tests, 0 failures on each). On JDK 21 the JDK's own jdk.jsobject still takes precedence (behavior unchanged); on JDK 26 netscape.javascript resolves from the bundled artifact and the embedded WebView renders a page.
Documentation:
The feature is documented
The documentation is up to date
Release notes:
Added an entry if the change is breaking or significant
Note: this overlaps with #3839 (JDK 25 bump) — that PR moves openjfx.version to 25, which already pulls in jdk-jsobject transitively. This PR adds it explicitly so it's guaranteed on the classpath for JDK 26.
Adding the org.openjfx:jdk-jsobject will on pre-JDK26 result in a build where (for instance) JSObject will be available from two jar files. Moreover, the one added through org.openjfx:jdk-jsobject has a byte code major version of 68, which is Java24, so a pre-Java24 class loader will fail to load it.
I will make an effort to completely remove the dependency to JSObject. In the meanwhile, can we instead add this dependency in a Maven profile?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MergedLogEntryDisplayControllerusesnetscape.javascript.JSObjectto bridge theOlog WebView to Java. That class was provided by the JDK's
jdk.jsobjectmodule,which is removed in JDK 26, so
javafx.webno longer compiles or resolves there.Since JavaFX 24 that module is shipped with JavaFX as the upgradable
org.openjfx:jdk-jsobjectartifact; this adds it to the classpath. It is versionedindependently of
openjfx.versionbecause the standalone artifact only exists from25 onwards. On JDK 25 and earlier the platform module still takes precedence, so the
dependency is inert; on JDK 26 it supplies
netscape.javascript.Together with #3851 (which replaces the removed
Thread.stop()), this clears thesecond and final compile blocker, so the project builds and runs on JDK 26.
Checklist
and JDK 26 (2332 tests, 0 failures on each). On JDK 21 the JDK's own
jdk.jsobjectstill takes precedence (behavior unchanged); on JDK 26netscape.javascriptresolves from the bundled artifact and the embeddedWebViewrenders a page.