No Bamboo charts produced

Still need help?

The Atlassian Community is here for you.

Ask the community

Symptoms

Bamboo fails to generate charts and the following appears in the atlassian-bamboo.log:

2014-04-23 13:00:20,863 ERROR [http-bio-8085-exec-23] [runtime] Expression chart is undefined on line 4, column 144 in fragments/charts/reportChart.ftl.
Expression chart is undefined on line 4, column 144 in fragments/charts/reportChart.ftl.
The problematic instruction:
----------
==> ${chart.imageMapName} [on line 4, column 142 in fragments/charts/reportChart.ftl]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression chart is undefined on line 4, column 144 in fragments/charts/reportChart.ftl.
	at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
	at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
	at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
	at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
	at freemarker.core.Expression.getStringValue(Expression.java:93)
	at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
	at freemarker.core.Environment.visit(Environment.java:210)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:210)
	at freemarker.core.Environment.process(Environment.java:190)
	at freemarker.template.Template.process(Template.java:289)
	at freemarker.template.Template.process(Template.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:724)
2014-04-23 13:00:21,301 INFO [http-bio-8085-exec-11] [AccessLogFilter] 0:0:0:0:0:0:0:1 GET http://bamboo.yourcompany.com/chart?filename= 29718kb
2014-04-23 13:00:21,305 ERROR [http-bio-8085-exec-11] [FiveOhOh] 500 Exception was thrown.
javax.servlet.ServletException: Chart image not found
	at org.jfree.chart.servlet.DisplayChart.service(DisplayChart.java:149)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
	at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
	at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
	at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
	at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56)
	at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)

Diagnosis

Locate your Java installation path, and run the following command:

find /path/to/java/jdk1.7.0_25 -name '*.so' |xargs ldd

A list of libraries will not be found. These are among them:

libcairo.so.2 => not found
libfontconfig.so.1 => not found
libfreetype.so.6 => not found
libgcc_s.so.1 => not found
libgdk_pixbuf-2.0.so.0 => not found
libgdk-x11-2.0.so.0 => not found
libgio-2.0.so.0 => not found
libglib-2.0.so.0 => not found
libGL.so.1 => not found
libgmodule-2.0.so.0 => not found
libgobject-2.0.so.0 => not found
libgstreamer-lite.so => not found
libgthread-2.0.so.0 => not found
libgtk-x11-2.0.so.0 => not found
libmawt.so => not found
libpango-1.0.so.0 => not found
libpangocairo-1.0.so.0 => not found
libpangoft2-1.0.so.0 => not found
libstdc++.so.6 => not found
libX11.so.6 => not found
libXext.so.6 => not found
libXi.so.6 => not found
libxml2.so.2 => not found

Cause

An JDK distribution was downloaded from Oracle website, not from Yum or RPM, and was installed in a headless server profile. That's why it's missing all the required dependencies.

Resolution

All font libraries (not present on headless servers) have to be in place to render charts.

The easiest way to resolve this is to install a non-headless JRE distribution package or a packaged JDK on the server (even if it won't be used). This will put all dependencies in place. In most cases, installing a JDK from Yum EPEL repository, then updating JAVA_HOME fixes this problem.

The other option is to keep installing packages until (almost) all libraries marked as not found are available.

Last modified on Mar 30, 2016

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.