Bug 647054 - Font issue with OpenJDK 1.6
Summary: Font issue with OpenJDK 1.6
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: RHQ Project
Classification: Other
Component: Core UI
Version: 3.0.0
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: ---
: ---
Assignee: RHQ Project Maintainer
QA Contact: Mike Foley
URL: https://jira.jboss.org/browse/JBPAPP-...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-10-26 23:00 UTC by Ondřej Žižka
Modified: 2012-01-16 21:08 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-01-16 21:08:54 UTC
Embargoed:


Attachments (Terms of Use)

Description Ondřej Žižka 2010-10-26 23:00:04 UTC
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)

Comment 1 Ondřej Žižka 2010-10-26 23:05:44 UTC
Prevents rendering of any plot.

Comment 2 Ondřej Žižka 2010-10-26 23:19:56 UTC

*** This bug has been marked as a duplicate of bug 478480 ***

Comment 3 Ian Springer 2010-10-29 04:28:44 UTC
Note, this item from the RHQ FAQ describes a workaround for this issue:

http://www.rhq-project.org/display/JOPR2/FAQ#FAQ-WhyarethegraphsandchartsontheMonitortabintheGUInotdisplayed%3F

Comment 4 Ondřej Žižka 2010-11-16 18:17:36 UTC
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?

Comment 5 Ian Springer 2010-11-17 02:13:59 UTC
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.

Comment 6 Ondřej Žižka 2010-11-17 06:32:30 UTC
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.

Comment 7 Alan Santos 2012-01-16 21:08:54 UTC
Work around exists in comment #3


Note You need to log in before you can comment on or make changes to this bug.