While changing our charts from Jfreechart to the primefaces piechart we are having some issues to make it work the first time.
While implemented the piechart at first sight like the example we can not seem to make it work at the first call.
When accessing the page for the first time we always receive a Nullpointerexception. If the page is then refreshed the PieChart is being correctly rendered.
I've checked our code and even at the first generation the List is being filled in so that doesn't seem to be the problem.
Any thoughts on whet the issue might be.
I've already tried a couple of thing like eg: filling the List in the constructor in stead of the get method,... but they all seem the result in the same issue
Exception,
Code: Select all
java.lang.NullPointerException
at org.primefaces.component.chart.pie.PieChartRenderer.encodeLocalData(PieChartRenderer.java:99)
at org.primefaces.component.chart.pie.PieChartRenderer.encodeScript(PieChartRenderer.java:49)
at org.primefaces.component.chart.BaseChartRenderer.encodeEnd(BaseChartRenderer.java:54)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:281)
at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:279)
at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
at org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
at org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)
at org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)
at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:72)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:60)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:201)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:133)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:69)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:76)
at org.primefaces.component.dashboard.DashboardRenderer.encodeMarkup(DashboardRenderer.java:100)
at org.primefaces.component.dashboard.DashboardRenderer.encodeEnd(DashboardRenderer.java:79)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at org.apache.myfaces.custom.ppr.PPRLifecycleWrapper.render(PPRLifecycleWrapper.java:84)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at be.sofico.web.frmwrk.application.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at be.sofico.web.frmwrk.application.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:29)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
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: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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Code: Select all
<managed-bean>
<managed-bean-name>chart</managed-bean-name>
<managed-bean-class>be.sofico.web.mgbean.dashboard.Chart</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Code: Select all
private List<Chart> chartFuelType;
public Dashboard(){
fillFuelTypes();
}
private void fillFuelTypes() throws MWSException {
chartFuelType = new ArrayList<Chart>();
MWSGenericMapList ft = getFuelTypes();
for (int i = 0; i < ft.size(); i++) {
Double value = Double.parseDouble(ft.get(i).get("counter").toString());
chartFuelType.add(new Chart(ft.get(i).get("fueltype").toString(), value.intValue()));
}
}
Code: Select all
public class Chart {
private static final long serialVersionUID = 6941226397386362479L;
private String xvalue;
private int yvalue;
public Chart() {
}
public Chart(String xvalue, int yvalue) {
this.xvalue = xvalue;
this.yvalue = yvalue;
}
}
Code: Select all
public class Chart {
private static final long serialVersionUID = 6941226397386362479L;
private String xvalue;
private int yvalue;
public Chart() {
}
public Chart(String xvalue, int yvalue) {
this.xvalue = xvalue;
this.yvalue = yvalue;
}