提交 1966fe53 编写于 作者: K kohsuke

improved the headless detection to cover OpenJDK on ARM.

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@19918 71c3de6d-444a-0410-be80-ed276b4c234a
上级 d83ecab2
......@@ -118,6 +118,42 @@ public class ChartUtil {
ServletOutputStream os = rsp.getOutputStream();
ImageIO.write(image, "PNG", os);
os.close();
} catch(Error e) {
/* OpenJDK on ARM produces an error like this in case of headless error
Caused by: java.lang.Error: Probable fatal error:No fonts found.
at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1088)
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.Font2D.getFontMetrics(Font2D.java:387)
at java.awt.Font.defaultLineMetrics(Font.java:2082)
at java.awt.Font.getLineMetrics(Font.java:2152)
at org.jfree.chart.axis.NumberAxis.estimateMaximumTickLabelHeight(NumberAxis.java:974)
at org.jfree.chart.axis.NumberAxis.selectVerticalAutoTickUnit(NumberAxis.java:1104)
at org.jfree.chart.axis.NumberAxis.selectAutoTickUnit(NumberAxis.java:1048)
at org.jfree.chart.axis.NumberAxis.refreshTicksVertical(NumberAxis.java:1249)
at org.jfree.chart.axis.NumberAxis.refreshTicks(NumberAxis.java:1149)
at org.jfree.chart.axis.ValueAxis.reserveSpace(ValueAxis.java:788)
at org.jfree.chart.plot.CategoryPlot.calculateRangeAxisSpace(CategoryPlot.java:2650)
at org.jfree.chart.plot.CategoryPlot.calculateAxisSpace(CategoryPlot.java:2669)
at org.jfree.chart.plot.CategoryPlot.draw(CategoryPlot.java:2716)
at org.jfree.chart.JFreeChart.draw(JFreeChart.java:1222)
at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1396)
at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1376)
at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1361)
at hudson.util.ChartUtil.generateGraph(ChartUtil.java:116)
at hudson.util.ChartUtil.generateGraph(ChartUtil.java:99)
at hudson.tasks.test.AbstractTestResultAction.doGraph(AbstractTestResultAction.java:196)
at hudson.tasks.test.TestResultProjectAction.doTrend(TestResultProjectAction.java:97)
... 37 more
*/
if(e.getMessage().contains("Probable fatal error:No fonts found")) {
rsp.sendRedirect2(req.getContextPath()+"/images/headless.png");
return;
}
throw e; // otherwise let the caller deal with it
} catch(HeadlessException e) {
// not available. send out error message
rsp.sendRedirect2(req.getContextPath()+"/images/headless.png");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册