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)
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