Bug 647054
| Summary: | Font issue with OpenJDK 1.6 | ||
|---|---|---|---|
| Product: | [Other] RHQ Project | Reporter: | Ondřej Žižka <ozizka> |
| Component: | Core UI | Assignee: | RHQ Project Maintainer <rhq-maint> |
| Status: | CLOSED WONTFIX | QA Contact: | Mike Foley <mfoley> |
| Severity: | medium | Docs Contact: | |
| Priority: | low | ||
| Version: | 3.0.0 | CC: | asantos, ian.springer |
| Target Milestone: | --- | Keywords: | Reopened |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| URL: | https://jira.jboss.org/browse/JBPAPP-5338 | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-01-16 21:08:54 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Prevents rendering of any plot. *** This bug has been marked as a duplicate of bug 478480 *** Note, this item from the RHQ FAQ describes a workaround for this issue: http://www.rhq-project.org/display/JOPR2/FAQ#FAQ-WhyarethegraphsandchartsontheMonitortabintheGUInotdisplayed%3F Reopening since Bug 478480 was closed. Regarding that bug, I did not remove any font, I simply used OpenJDK on a freshly installed RHEL. With Sun JDK, it works. Can't RHQ bundle the fonts it depends on? Did you figure out which font packages you had to install to get it to work? Bundling the fonts is a possibility depending on their license. However, we don't currently don't bundle any OS-specific stuff, aside from SIGAR. Sry, no - we were in a hurry with EAP at that time. Besides, not sure if there are some extra font package for OpenJDK in RHEL. I'm not sure how fonts are configured / used from JVM, but since Sun JDK works, I guess it's JDK specific matter. I'm not much into fonts, but - isn't TTF a cross-platform format? And couldn't you use some of free fonts? But I guess you got this idea too. Work around exists in comment #3 |
STR: 1) Use OpenJDK 1.6 - e.g. IcedTea 1.7.4 from RHEL 6 2) Run JON 2.4.0 (I was running it with EAP 5.1 but that most probably does not matter) 3) Go to some page with a chart, e.g., DLQ Queue page 4) Check the rhq-server-log4j.log, should contain the following NCDFEx: 2010-10-26 18:49:36,341 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/].[highLowChart]] Servlet.service() for servlet highLowChart threw exception java.lang.NoClassDefFoundError: Could not initialize class org.rhq.enterprise.gui.image.chart.HighLowChart at org.rhq.enterprise.gui.common.servlet.HighLowChartServlet.createChart(HighLowChartServlet.java:78) at org.rhq.enterprise.gui.common.servlet.ChartServlet.createImage(ChartServlet.java:180) at org.rhq.enterprise.gui.common.servlet.ImageServlet.doGet(ImageServlet.java:123) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.rhq.helpers.rtfilter.filter.RtFilter.doFilter(RtFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:636) 2010-10-26 18:49:36,344 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/].[highLowChart]] Servlet.service() for servlet highLowChart threw exception java.lang.Error: Probable fatal error:No fonts found. at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1088) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960) at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899) at sun.font.FontManager.findDeferredFont(FontManager.java:916) at sun.font.FontManager.findFont2D(FontManager.java:1904) at sun.font.FontManager.findFont2D(FontManager.java:1865) at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1071) at sun.font.FontManager.initialiseDeferredFont(FontManager.java:967) at sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:254) at sun.font.CompositeFont.getSlotFont(CompositeFont.java:334) at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:77) at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93) at sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:358) at sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:349) at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:301) at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:798) at org.rhq.enterprise.gui.image.WebImage.<clinit>(WebImage.java:147) at org.rhq.enterprise.gui.common.servlet.HighLowChartServlet.createChart(HighLowChartServlet.java:78) at org.rhq.enterprise.gui.common.servlet.ChartServlet.createImage(ChartServlet.java:180) at org.rhq.enterprise.gui.common.servlet.ImageServlet.doGet(ImageServlet.java:123) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.rhq.helpers.rtfilter.filter.RtFilter.doFilter(RtFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:636)