Burndown broken on Solaris

I still cannot get the burndown chart to work, even after setting the headless attribute for Unix.

Statement from Kunagi Team

This has turned out to be not a bug on Solaris, but concerning a too low Java version. See iss645.

Status

Issue is closed.

Comments

Mon, Feb 7, 2011, 22:17 by Witek (SM,T)

Please provide us some hints, we could use to help you. Do you get some messages in the logs? What application server did you deploy Kunagi into? What are the dates of the beginning and the end of the sprint?

Mon, Feb 7, 2011, 23:22 by Jim Tully

Version 0.16.1 deployed on Tomcat running on Sun Solaris 10 (Unix). I get the same type of message as previously reported:

FATAL AHttpServlet GET failed: scrum.server.sprint.SprintBurndownChartServlet ->
java.lang.ExceptionInInitializerError

Caused by: java.awt.HeadlessException

(I can post the remainder if it would be helpful).

Tomcat startup script includes the following options (without the line break):

-Djava.awt.headless=true
-Dkunagi.config=/work/tomcat/kunagi/current/properties/config.properties

I've trued with and without the first option - it seemed to make no difference.

Tue, Feb 8, 2011, 00:01 by Jim Tully

Sorry, forgot to mention: Tomcat version is 6.0.18. JVM is 1.6.0.13.

Tue, Feb 8, 2011, 00:05 by Witek (SM,T)

I have never seen this exception before. My guess would be, that Java (AWT) behaves somewhat different on Solaris.

Since we use JFreeChart to render the burndown, we could look in their community for a solution.

Could you please post here the stack trace of the exception and your Java version?

I will implement exception handling for the error and provide more useful information (like the headless status) of the VM.

Tue, Feb 8, 2011, 01:48 by Jim Tully

JVM is v1.6.0.13.

Here's the stack trace:

    FATAL AHttpServlet         GET failed: scrum.server.sprint.SprintBurndownChartServlet -> 
java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
    at org.jfree.chart.ChartFactory.createXYLineChart(ChartFactory.java:1682)
    at scrum.server.common.BurndownChart.createSprintBurndownChart(BurndownChart.java:160)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:133)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:90)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:75)
    at scrum.server.sprint.SprintBurndownChartServlet.onRequest(SprintBurndownChartServlet.java:31)
    at scrum.server.common.AHttpServlet.doGet(AHttpServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
 | app:kunagiweb > session:10.170.69.155


    FATAL AHttpServlet         GET failed: scrum.server.sprint.SprintBurndownChartServlet -> 
java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
    at org.jfree.chart.ChartFactory.createXYLineChart(ChartFactory.java:1682)
    at scrum.server.common.BurndownChart.createSprintBurndownChart(BurndownChart.java:160)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:133)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:90)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:75)
    at scrum.server.sprint.SprintBurndownChartServlet.onRequest(SprintBurndownChartServlet.java:31)
    at scrum.server.common.AHttpServlet.doGet(AHttpServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
 | app:kunagiweb > session:jimtully</nowiki>

Tue, Feb 8, 2011, 02:42 by Jim Tully

I restarted Tomcat to get cleaner stack traces, and I see that I am getting one other error that may shed light on things. Here's the stack trace from the last restart. I see that it is throwing a HeadlessException, which I had not seen before.

FATAL AHttpServlet         GET failed: scrum.server.sprint.SprintBurndownChartServlet -> 
java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
    at org.jfree.chart.ChartFactory.createXYLineChart(ChartFactory.java:1682)
    at scrum.server.common.BurndownChart.createSprintBurndownChart(BurndownChart.java:160)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:133)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:90)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:75)
    at scrum.server.sprint.SprintBurndownChartServlet.onRequest(SprintBurndownChartServlet.java:31)
    at scrum.server.common.AHttpServlet.doGet(AHttpServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
 | app:kunagiweb > session:jimtully


    FATAL AHttpServlet         GET failed: scrum.server.sprint.SprintBurndownChartServlet -> 
java.lang.ExceptionInInitializerError
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(GTKLookAndFeel.java:1543)
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1507)
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(GTKLookAndFeel.java:1394)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:540)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:585)
    at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1343)
    at javax.swing.UIManager.initialize(UIManager.java:1432)
    at javax.swing.UIManager.maybeInitialize(UIManager.java:1420)
    at javax.swing.UIManager.getDefaults(UIManager.java:660)
    at javax.swing.UIManager.getColor(UIManager.java:702)
    at org.jfree.chart.JFreeChart.<clinit>(JFreeChart.java:252)
    at org.jfree.chart.ChartFactory.createXYLineChart(ChartFactory.java:1682)
    at scrum.server.common.BurndownChart.createSprintBurndownChart(BurndownChart.java:160)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:133)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:90)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:75)
    at scrum.server.sprint.SprintBurndownChartServlet.onRequest(SprintBurndownChartServlet.java:31)
    at scrum.server.common.AHttpServlet.doGet(AHttpServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.awt.HeadlessException
    at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64)
    at com.sun.java.swing.plaf.gtk.PangoFonts.<clinit>(PangoFonts.java:43)
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(GTKLookAndFeel.java:1543)
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1507)
    at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(GTKLookAndFeel.java:1394)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:540)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:585)
    at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1343)
    at javax.swing.UIManager.initialize(UIManager.java:1432)
    at javax.swing.UIManager.maybeInitialize(UIManager.java:1420)
    at javax.swing.UIManager.getDefaults(UIManager.java:660)
    at javax.swing.UIManager.getColor(UIManager.java:702)
    at org.jfree.chart.JFreeChart.<clinit>(JFreeChart.java:252)
    at org.jfree.chart.ChartFactory.createXYLineChart(ChartFactory.java:1682)
    at scrum.server.common.BurndownChart.createSprintBurndownChart(BurndownChart.java:160)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:133)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:90)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:75)
    at scrum.server.sprint.SprintBurndownChartServlet.onRequest(SprintBurndownChartServlet.java:31)
    at scrum.server.common.AHttpServlet.doGet(AHttpServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
 | app:kunagiweb > session:10.170.69.155 > gwt-srv

Tue, Feb 8, 2011, 02:49 by anonymous

Would it matter whether I was running a JRE or JDK for Tomcat?

Wed, Feb 9, 2011, 15:39 by Witek (SM,T)

The headless property is set correctly. Kunagi sets it internally, too. But Java on Solaris seams to use a Look & Feel anyway, which then fails.

What I have found:

Did you already try to set the env variable DISPLAY=0:0?

Wed, Feb 9, 2011, 17:10 by Jim Tully

No, I hadn't tried the DISPLAY variable. I will try that today, and post back the results.

Fri, Feb 11, 2011, 16:58 by Jim Tully

We tried setting the display environment variable, but that didn't seem to take care of the problem. I'll investigate further today.

Thu, Mar 17, 2011, 18:55 by Nandabidya

(spam)

Mon, Nov 7, 2011, 10:12 by Arunprasad

Any update on this issue. Even I am getting the same error.

  FATAL AHttpServlet         GET failed: scrum.server.sprint.SprintBurndownChartServlet -> 
java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
    at org.jfree.chart.ChartFactory.createXYLineChart(ChartFactory.java:1682)
    at scrum.server.common.BurndownChart.createSprintBurndownChart(BurndownChart.java:176)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:148)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:105)
    at scrum.server.common.BurndownChart.writeSprintBurndownChart(BurndownChart.java:90)
    at scrum.server.sprint.SprintBurndownChartServlet.onRequest(SprintBurndownChartServlet.java:45)
    at scrum.server.common.AHttpServlet.doGet(AHttpServlet.java:47)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:636)

Mon, Nov 7, 2011, 10:52 by Witek (SM,T)

This seams to be a common issue with JFreeChart on some operating systems or JVMs. Several projects have this issue.

Did you already try to unset the DISPLAY variable?

What I have found:

Post a comment



optional
optional