jsf - java.lang.NullPointerException at org.primefaces.component.chart.renderer.MeterGaugeRenderer.encodeData -


i trying manage work following example metergauge since xhtml code not complete can use make entire xhtml page, have taken missing tags primefaces official doc @ page 12. created javabean file chartview.java (taking code metergauge sample page) , tried running on glassfish server, failed, can see logs

metergauge2.xhtml

<!doctype html> <html xmlns="http://www.w3c.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> <h:head> </h:head> <h:body>   <p:chart type="metergauge" model="#{chartbean.metergaugemodel1}" style="width:400px;height:250px" />  <p:chart type="metergauge" model="#{chartbean.metergaugemodel2}" style="width:400px;height:250px" />   </h:body> </html> 

chartview.java

package sources;  import javax.annotation.postconstruct; import java.io.serializable; import java.util.arraylist; import java.util.list; import javax.faces.bean.managedbean; import org.primefaces.model.chart.metergaugechartmodel;  @managedbean public class chartview implements serializable {      private metergaugechartmodel metergaugemodel1;     private metergaugechartmodel metergaugemodel2;      @postconstruct     public void init() {         createmetergaugemodels();     }      public metergaugechartmodel getmetergaugemodel1() {         return metergaugemodel1;     }      public metergaugechartmodel getmetergaugemodel2() {         return metergaugemodel2;     }      private metergaugechartmodel initmetergaugemodel() {         list<number> intervals = new arraylist<number>(){{             add(20);             add(50);             add(120);             add(220);         }};          return new metergaugechartmodel(140, intervals);     }      private void createmetergaugemodels() {         metergaugemodel1 = initmetergaugemodel();         metergaugemodel1.settitle("metergauge chart");         metergaugemodel1.setgaugelabel("km/h");          metergaugemodel2 = initmetergaugemodel();         metergaugemodel2.settitle("custom options");         metergaugemodel2.setseriescolors("66cc66,93b75f,e7e658,cc6666");         metergaugemodel2.setgaugelabel("km/h");         metergaugemodel2.setgaugelabelposition("bottom");         metergaugemodel2.setshowticklabels(false);         metergaugemodel2.setlabelheightadjust(110);         metergaugemodel2.setintervalouterradius(100);     }  } 

glassfish logs

2015-07-17t16:51:23.536+0200|grave: error rendering view[/metergauge2.xhtml] java.lang.nullpointerexception     @ org.primefaces.component.chart.renderer.metergaugerenderer.encodedata(metergaugerenderer.java:33)     @ org.primefaces.component.chart.renderer.baseplotrenderer.render(baseplotrenderer.java:29)     @ org.primefaces.component.chart.chartrenderer.encodescript(chartrenderer.java:98)     @ org.primefaces.component.chart.chartrenderer.encodeend(chartrenderer.java:67)     @ javax.faces.component.uicomponentbase.encodeend(uicomponentbase.java:919)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1863)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859)     @ com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:456)     @ org.apache.myfaces.application.viewhandlerimpl.renderview(viewhandlerimpl.java:285)     @ com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:120)     @ com.sun.faces.lifecycle.phase.dophase(phase.java:101)     @ com.sun.faces.lifecycle.lifecycleimpl.render(lifecycleimpl.java:219)     @ javax.faces.webapp.facesservlet.service(facesservlet.java:647)     @ org.apache.catalina.core.standardwrapper.service(standardwrapper.java:1682)     @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:318)     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:160)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:734)     @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:673)     @ com.sun.enterprise.web.webpipeline.invoke(webpipeline.java:99)     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:174)     @ org.apache.catalina.connector.coyoteadapter.doservice(coyoteadapter.java:415)     @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:282)     @ com.sun.enterprise.v3.services.impl.containermapper$httphandlercallable.call(containermapper.java:459)     @ com.sun.enterprise.v3.services.impl.containermapper.service(containermapper.java:167)     @ org.glassfish.grizzly.http.server.httphandler.runservice(httphandler.java:201)     @ org.glassfish.grizzly.http.server.httphandler.dohandle(httphandler.java:175)     @ org.glassfish.grizzly.http.server.httpserverfilter.handleread(httpserverfilter.java:235)     @ org.glassfish.grizzly.filterchain.executorresolver$9.execute(executorresolver.java:119)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.executefilter(defaultfilterchain.java:284)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.executechainpart(defaultfilterchain.java:201)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.execute(defaultfilterchain.java:133)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.process(defaultfilterchain.java:112)     @ org.glassfish.grizzly.processorexecutor.execute(processorexecutor.java:77)     @ org.glassfish.grizzly.nio.transport.tcpniotransport.fireioevent(tcpniotransport.java:561)     @ org.glassfish.grizzly.strategies.abstractiostrategy.fireioevent(abstractiostrategy.java:112)     @ org.glassfish.grizzly.strategies.workerthreadiostrategy.run0(workerthreadiostrategy.java:117)     @ org.glassfish.grizzly.strategies.workerthreadiostrategy.access$100(workerthreadiostrategy.java:56)     @ org.glassfish.grizzly.strategies.workerthreadiostrategy$workerthreadrunnable.run(workerthreadiostrategy.java:137)     @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.dowork(abstractthreadpool.java:565)     @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.run(abstractthreadpool.java:545)     @ java.lang.thread.run(thread.java:745)  2015-07-17t16:51:23.601+0200|avvertenza: standardwrappervalve[faces servlet]: servlet.service() servlet faces servlet threw exception java.lang.nullpointerexception     @ org.primefaces.component.chart.renderer.metergaugerenderer.encodedata(metergaugerenderer.java:33)     @ org.primefaces.component.chart.renderer.baseplotrenderer.render(baseplotrenderer.java:29)     @ org.primefaces.component.chart.chartrenderer.encodescript(chartrenderer.java:98)     @ org.primefaces.component.chart.chartrenderer.encodeend(chartrenderer.java:67)     @ javax.faces.component.uicomponentbase.encodeend(uicomponentbase.java:919)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1863)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859)     @ com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:456)     @ org.apache.myfaces.application.viewhandlerimpl.renderview(viewhandlerimpl.java:285)     @ com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:120)     @ com.sun.faces.lifecycle.phase.dophase(phase.java:101)     @ com.sun.faces.lifecycle.lifecycleimpl.render(lifecycleimpl.java:219)     @ javax.faces.webapp.facesservlet.service(facesservlet.java:647)     @ org.apache.catalina.core.standardwrapper.service(standardwrapper.java:1682)     @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:318)     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:160)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:734)     @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:673)     @ com.sun.enterprise.web.webpipeline.invoke(webpipeline.java:99)     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:174)     @ org.apache.catalina.connector.coyoteadapter.doservice(coyoteadapter.java:415)     @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:282)     @ com.sun.enterprise.v3.services.impl.containermapper$httphandlercallable.call(containermapper.java:459)     @ com.sun.enterprise.v3.services.impl.containermapper.service(containermapper.java:167)     @ org.glassfish.grizzly.http.server.httphandler.runservice(httphandler.java:201)     @ org.glassfish.grizzly.http.server.httphandler.dohandle(httphandler.java:175)     @ org.glassfish.grizzly.http.server.httpserverfilter.handleread(httpserverfilter.java:235)     @ org.glassfish.grizzly.filterchain.executorresolver$9.execute(executorresolver.java:119)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.executefilter(defaultfilterchain.java:284)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.executechainpart(defaultfilterchain.java:201)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.execute(defaultfilterchain.java:133)     @ org.glassfish.grizzly.filterchain.defaultfilterchain.process(defaultfilterchain.java:112)     @ org.glassfish.grizzly.processorexecutor.execute(processorexecutor.java:77)     @ org.glassfish.grizzly.nio.transport.tcpniotransport.fireioevent(tcpniotransport.java:561)     @ org.glassfish.grizzly.strategies.abstractiostrategy.fireioevent(abstractiostrategy.java:112)     @ org.glassfish.grizzly.strategies.workerthreadiostrategy.run0(workerthreadiostrategy.java:117)     @ org.glassfish.grizzly.strategies.workerthreadiostrategy.access$100(workerthreadiostrategy.java:56)     @ org.glassfish.grizzly.strategies.workerthreadiostrategy$workerthreadrunnable.run(workerthreadiostrategy.java:137)     @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.dowork(abstractthreadpool.java:565)     @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.run(abstractthreadpool.java:545)     @ java.lang.thread.run(thread.java:745) 

just check source code based on stack trace.

java.lang.nullpointerexception     @ org.primefaces.component.chart.renderer.metergaugerenderer.encodedata(metergaugerenderer.java:33) 

metergaugerenderer#encodedata() line 33 below:

33    writer.write(",data:[[" + model.getvalue() + "]]"); 

the writer can't null @ point. so, logically, model null.

upon closer inspection of <p:chart model> attribute, appears made mistake in showcase in current form. closer @ managed bean names.

<p:chart ... model="#{chartbean.metergaugemodel1}" /> 
@managedbean public class chartview implements serializable {} 

indeed, don't match.

so, solution is: either use #{chartview.metergaugemodel1} in view, or rename backing bean class chartbean.


Comments