Does Jide 3.7.15 works fine on the latest build of JDK 25?
In the latest build of JDK 25, some changes were made to increase internal encapsulation of UI classes, including Swing. I am collecting feedback on how these changes affect third-party libraries.
There are already issues reported, like JDK-8360594, where libraries such as Jide(uknown version) and JGoodies access JDK internals and are now affected.
What about Jide 3.7.15? Has anyone tested it on the latest JDK 25 build? Please share your feedback or report any issues you’ve seen.
As far as I understand the notes here, it should work.
(Common) Supports JDK 17 and above but with some features removed. Using Windows L&F will not crash but it will fall back to Basic L&F implementation of the components because XPStyle can no longer be accessed on JDK 17. Any Synth-based L&Fs are not supported.
As far as I understand the notes here, it should work.
(Common) Supports JDK 17 and above but with some features removed. Using Windows L&F will not crash but it will fall back to Basic L&F implementation of the components because XPStyle can no longer be accessed on JDK 17. Any Synth-based L&Fs are not supported.
This is a note from JIDE 3.8.0 (https://www.jidesoft.com/history/index.php#3.8.0), which seems to be not available on Maven central and nobody knows where the source code is (see #56).
Since Jide extends some Windows and Aqua L&F UI classes, it probably no longer works with Java 25:
- https://github.com/jidesoft/jide-oss/blob/0c70ba346f34f1ab30a91922cda845ffeaaa2337/src/com/jidesoft/plaf/windows/WindowsJidePopupMenuUI.java#L15
- https://github.com/jidesoft/jide-oss/blob/0c70ba346f34f1ab30a91922cda845ffeaaa2337/src/com/jidesoft/plaf/windows/WindowsRangeSliderUI.java#L26
- https://github.com/jidesoft/jide-oss/blob/0c70ba346f34f1ab30a91922cda845ffeaaa2337/src/com/jidesoft/plaf/aqua/AquaJidePopupMenuUI.java#L15
- maybe more...
When running Jide 3.7.15 with Windows L&F on Java 25, following exception occurs:
Exception in thread "AWT-EventQueue-0" java.lang.IncompatibleClassChangeError: class com.jidesoft.plaf.windows.WindowsJidePopupMenuUI cannot inherit from final class com.sun.java.swing.plaf.windows.WindowsPopupMenuUI
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
at java.desktop/javax.swing.UIDefaults.getUIClass(UIDefaults.java:711)
at java.desktop/javax.swing.UIDefaults.getUI(UIDefaults.java:778)
at java.desktop/javax.swing.UIManager.getUI(UIManager.java:1059)
at com.jidesoft.swing.JidePopupMenu.updateUI(JidePopupMenu.java:65)
at java.desktop/javax.swing.JPopupMenu.<init>(JPopupMenu.java:207)
at java.desktop/javax.swing.JPopupMenu.<init>(JPopupMenu.java:192)
at com.jidesoft.swing.JidePopupMenu.<init>(JidePopupMenu.java:37)
at com.formdev.flatlaf.testing.jideoss.FlatJideOssTest.showJidePopupMenu(FlatJideOssTest.java:76)
at com.formdev.flatlaf.testing.jideoss.FlatJideOssTest.lambda$8(FlatJideOssTest.java:247)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
...
Maybe Jide is only broken when using it with Windows and Aqua L&F...
Using Jide with FlatLaf on Java 25 seems to work 😄