java.lang.NullPointerException - p:barchart

UI Components for JSF
Post Reply
kadu.neves
Posts: 4
Joined: 09 Nov 2011, 14:59

09 Nov 2011, 15:09

hi, I am attempting to use the p: barchart as follows

<h:body>
<f:view>
<h:form>
<p:barChart value="#{chartBean.categoryModel}" legendPosition="ne"
title="Basic Bar Chart" min="0" max="200" style="height:300px"/>
</h:form>
</f:view>
</h:body>

but got the following error

java.lang.NullPointerException
at org.primefaces.component.chart.bar.BarChartRenderer.encodeOptions(BarChartRenderer.java:64)
at org.primefaces.component.chart.bar.BarChartRenderer.encodeScript(BarChartRenderer.java:51)
at org.primefaces.component.chart.bar.BarChartRenderer.encodeEnd(BarChartRenderer.java:36)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)

I am using Mojarra 2.1.4 and PrimeFaces 3.0.M3

Can someone help me?

thanks

kadu neves

dark_prime
Posts: 46
Joined: 02 Dec 2010, 14:30

10 Nov 2011, 10:04

where is your bean code? nullpointer usually occur in the java part ;)

kadu.neves
Posts: 4
Joined: 09 Nov 2011, 14:59

10 Nov 2011, 14:58

dark_prime wrote:where is your bean code? nullpointer usually occur in the java part ;)
hi, follows the bean, I'm trying to run the example of the showcase-labs 3.0 to measure the graphics before using in my application

Code: Select all

@ManagedBean(value="chartBean")
@RequestScoped
public class ChartBean implements Serializable{
    
    private CartesianChartModel categoryModel;  
  
    public ChartBean() {  
        createCategoryModel();  
    }  
  
    public CartesianChartModel getCategoryModel() {  
      //  if(categoryModel == null) createCategoryModel();
        return categoryModel;  
    }  
  
    private void createCategoryModel() {  
        categoryModel = new CartesianChartModel();  
  
        ChartSeries boys = new ChartSeries();  
        boys.setLabel("Boys");  
  
        boys.set("2004", 120);  
        boys.set("2005", 100);  
        boys.set("2006", 44);  
        boys.set("2007", 150);  
        boys.set("2008", 25);  
  
        ChartSeries girls = new ChartSeries();  
        girls.setLabel("Girls");  
  
        girls.set("2004", 52);  
        girls.set("2005", 60);  
        girls.set("2006", 110);  
        girls.set("2007", 135);  
        girls.set("2008", 120);  
  
        categoryModel.addSeries(boys);  
        categoryModel.addSeries(girls);  
    }  
    
}
thanks

dark_prime
Posts: 46
Joined: 02 Dec 2010, 14:30

10 Nov 2011, 17:50

Cant reproduce your nullpointer.

Here is the Bean, that works for me

Code: Select all

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;

@ManagedBean
@RequestScoped
public class ChartBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private CartesianChartModel categoryModel;

	public ChartBean() {
	}

	public CartesianChartModel getCategoryModel() {
		return categoryModel;
	}

	@PostConstruct
	public void init() {
		categoryModel = new CartesianChartModel();

		ChartSeries boys = new ChartSeries();
		boys.setLabel("Boys");

		boys.set("2004", 120);
		boys.set("2005", 100);
		boys.set("2006", 44);
		boys.set("2007", 150);
		boys.set("2008", 25);

		ChartSeries girls = new ChartSeries();
		girls.setLabel("Girls");

		girls.set("2004", 52);
		girls.set("2005", 60);
		girls.set("2006", 110);
		girls.set("2007", 135);
		girls.set("2008", 120);

		categoryModel.addSeries(boys);
		categoryModel.addSeries(girls);
	}

}

kadu.neves
Posts: 4
Joined: 09 Nov 2011, 14:59

10 Nov 2011, 18:50

hi, follows the bean code

Code: Select all

package teste;


import java.io.Serializable;

import javax.annotation.ManagedBean;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;

import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author kpereira
 */
@ManagedBean
@RequestScoped
public class ChartBean implements Serializable{
    
    private static final long serialVersionUID = 1L;
   private CartesianChartModel categoryModel;

   public ChartBean() {
   }

   public CartesianChartModel getCategoryModel() {
      return categoryModel;
   }

   @PostConstruct
   public void init() {
      categoryModel = new CartesianChartModel();

      ChartSeries boys = new ChartSeries();
      boys.setLabel("Boys");

      boys.set("2004", 120);
      boys.set("2005", 100);
      boys.set("2006", 44);
      boys.set("2007", 150);
      boys.set("2008", 25);

      ChartSeries girls = new ChartSeries();
      girls.setLabel("Girls");

      girls.set("2004", 52);
      girls.set("2005", 60);
      girls.set("2006", 110);
      girls.set("2007", 135);
      girls.set("2008", 120);

      categoryModel.addSeries(boys);
      categoryModel.addSeries(girls);
   }
    
}
xhtml code

Code: Select all

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <f:view>
            <h:form>
                <p:barChart value="#{chartBean.categoryModel}" legendPosition="ne"  
                            title="Basic Bar Chart" min="0" max="200" style="height:300px"/>  
            </h:form>
        </f:view>
    </h:body>
</html>
and the nullpointer

Code: Select all

GRAVE: Error Rendering View[/index.xhtml]
java.lang.NullPointerException
	at org.primefaces.component.chart.bar.BarChartRenderer.encodeOptions(BarChartRenderer.java:64)
	at org.primefaces.component.chart.bar.BarChartRenderer.encodeScript(BarChartRenderer.java:51)
	at org.primefaces.component.chart.bar.BarChartRenderer.encodeEnd(BarChartRenderer.java:36)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:662)
Thanks for the help!

kadu.neves
Posts: 4
Joined: 09 Nov 2011, 14:59

10 Nov 2011, 19:53

kadu.neves wrote:hi, follows the bean code

Code: Select all

package teste;


import java.io.Serializable;

import javax.annotation.ManagedBean;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;

import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author kpereira
 */
@ManagedBean
@RequestScoped
public class ChartBean implements Serializable{
    
    private static final long serialVersionUID = 1L;
   private CartesianChartModel categoryModel;

   public ChartBean() {
   }

   public CartesianChartModel getCategoryModel() {
      return categoryModel;
   }

   @PostConstruct
   public void init() {
      categoryModel = new CartesianChartModel();

      ChartSeries boys = new ChartSeries();
      boys.setLabel("Boys");

      boys.set("2004", 120);
      boys.set("2005", 100);
      boys.set("2006", 44);
      boys.set("2007", 150);
      boys.set("2008", 25);

      ChartSeries girls = new ChartSeries();
      girls.setLabel("Girls");

      girls.set("2004", 52);
      girls.set("2005", 60);
      girls.set("2006", 110);
      girls.set("2007", 135);
      girls.set("2008", 120);

      categoryModel.addSeries(boys);
      categoryModel.addSeries(girls);
   }
    
}
xhtml code

Code: Select all

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <f:view>
            <h:form>
                <p:barChart value="#{chartBean.categoryModel}" legendPosition="ne"  
                            title="Basic Bar Chart" min="0" max="200" style="height:300px"/>  
            </h:form>
        </f:view>
    </h:body>
</html>
and the nullpointer

Code: Select all

GRAVE: Error Rendering View[/index.xhtml]
java.lang.NullPointerException
	at org.primefaces.component.chart.bar.BarChartRenderer.encodeOptions(BarChartRenderer.java:64)
	at org.primefaces.component.chart.bar.BarChartRenderer.encodeScript(BarChartRenderer.java:51)
	at org.primefaces.component.chart.bar.BarChartRenderer.encodeEnd(BarChartRenderer.java:36)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:662)
Thanks for the help!
Hi, my friend Your code helped me understand the mistake I was making

I was using a different package

Code: Select all

import javax.annotation.ManagedBean;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
worked with the packet following

Code: Select all

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
Thanks!!!

dark_prime
Posts: 46
Joined: 02 Dec 2010, 14:30

11 Nov 2011, 11:21

Ah ok, that explains it ;)

You are welcome

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 59 guests