Description of problem: - Font missing in openjdk packaging Version-Release number of selected component (if applicable): - 11 How reproducible: - 100% Steps to Reproduce: - Download Windows OpenJDK 11 : https://access.redhat.com/jbossnetwork/restricted/softwareDetail.html?softwareId=74421&product=core.service.openjdk&version=&downloadType=distributions - Unzip it to JAVA_HOME - cd to JAVA_HOME/bin - execute command: "jlink --no-header-files --no-man-pages --compress=2 --strip-debug --add-modules=java.base,jdk.attach,jdk.jfr,java.compiler,jdk.charsets,jdk.jlink,java.datatransfer,jdk.compiler,jdk.jshell,java.desktop,jdk.crypto.cryptoki,jdk.jsobject,java.instrument,jdk.crypto.ec,jdk.jstatd,java.logging,jdk.crypto.mscapi,jdk.localedata,java.management,jdk.dynalink,jdk.management.agent,java.management.rmi,jdk.editpad,jdk.management.jfr,java.naming,jdk.hotspot.agent,jdk.management,java.net.http,jdk.httpserver,jdk.naming.dns,java.prefs,jdk.internal.ed,jdk.naming.rmi,java.rmi,jdk.internal.jvmstat,jdk.net,java.scripting,jdk.internal.le,jdk.pack,java.se,jdk.internal.opt,jdk.rmic,java.security.jgss,jdk.internal.vm.ci,jdk.scripting.nashorn,java.security.sasl,jdk.internal.vm.compiler,jdk.scripting.nashorn.shell,java.smartcardio,jdk.internal.vm.compiler.management,jdk.sctp,java.sql,jdk.jartool,jdk.security.auth,java.sql.rowset,jdk.javadoc,jdk.security.jgss,java.transaction.xa,jdk.jcmd,jdk.unsupported.desktop,java.xml.crypto,jdk.jconsole,jdk.unsupported,java.xml,jdk.jdeps,jdk.xml.dom,jdk.accessibility,jdk.jdi,jdk.zipfs,jdk.aot,jdk.jdwp.agent --output java-runtime-all-mods - this created a JRE image in the sub directory java-runtime-all-mods" - Used this JRE image to launch the Swing application I provided in the attachment zip files using this command: "java-runtime-all-mods\bin\java -cp PATH_TO_MY_EXAMPLE_APPLICATION\helloworld-client-1.0-SNAPSHOT.jar com.zac.swing.hw.HelloWorldSwing" Actual results: Below error was seen in windows (Linux JDK ZIP of same version worked fine) : Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class sun.font.SunFontManager at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:265) at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1243) at java.desktop/javax.swing.JComponent.getFontMetrics(JComponent.java:1646) at java.desktop/javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(BasicLabelUI.java:246) at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1680) at java.desktop/java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:724) at java.desktop/java.awt.Container.preferredSize(Container.java:1823) at java.desktop/java.awt.Container.getPreferredSize(Container.java:1807) at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682) at java.desktop/javax.swing.JRootPane$RootLayout.preferredLayoutSize(JRootPane.java:866) at java.desktop/java.awt.Container.preferredSize(Container.java:1823) at java.desktop/java.awt.Container.getPreferredSize(Container.java:1807) at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682) at java.desktop/java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:724) at java.desktop/java.awt.Container.preferredSize(Container.java:1823) at java.desktop/java.awt.Container.getPreferredSize(Container.java:1807) at java.desktop/java.awt.Window.pack(Window.java:826) at com.zac.swing.hw.HelloWorldSwing.createAndShowGUI(HelloWorldSwing.java:21) at com.zac.swing.hw.HelloWorldSwing$1.run(HelloWorldSwing.java:31) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Expected results: - application runs normally Additional info:
Updated jdk11 build with the fix is published on customer portal: https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=distributions&product=core.service.openjdk&version=11.0.5.10-2
Reproduced with openjdk-11.0.5.10 and sample jar from ticket: C:\Users\tester\Desktop\java-11-openjdk-11.0.5.10-1.windows.redhat.x86_64\java-11-openjdk-11.0.5.10-1.windows.redhat.x86_64\bin>.\java-runtime-all-mods\bin\java -cp C:\Users\tester\Desktop\swing-helloworld-example\lib\helloworld-client-1.0-SNAPSHOT.jar com.zac.swing.hw.HelloWorldSwing Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class sun.font.SunFontManager at java.desktop/sun.font.FontDesignMetrics.getMetrics(Unknown Source) at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(Unknown Source) at java.desktop/javax.swing.JComponent.getFontMetrics(Unknown Source) at java.desktop/javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(Unknown Source) at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source) at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source) at java.desktop/java.awt.Container.preferredSize(Unknown Source) at java.desktop/java.awt.Container.getPreferredSize(Unknown Source) at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source) at java.desktop/javax.swing.JRootPane$RootLayout.preferredLayoutSize(Unknown Source) at java.desktop/java.awt.Container.preferredSize(Unknown Source) at java.desktop/java.awt.Container.getPreferredSize(Unknown Source) at java.desktop/javax.swing.JComponent.getPreferredSize(Unknown Source) at java.desktop/java.awt.BorderLayout.preferredLayoutSize(Unknown Source) at java.desktop/java.awt.Container.preferredSize(Unknown Source) at java.desktop/java.awt.Container.getPreferredSize(Unknown Source) at java.desktop/java.awt.Window.pack(Unknown Source) at com.zac.swing.hw.HelloWorldSwing.createAndShowGUI(HelloWorldSwing.java:21) at com.zac.swing.hw.HelloWorldSwing$1.run(HelloWorldSwing.java:31) at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source) On java-11-openjdk-11.0.7.10-1.windows.redhat.x86_64 was swing window rendered and displayed properly.