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:
- jfree.org/phpBB2/viewtopic.php
- jfree.org/phpBB2/viewtopic.php
- user.services.openoffice.org/..forum/viewtopic.php
- progress.com/.._pro_java/pse_pro_java_63/index.ssp
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: