2006 JR Open Discussion Posted August 22, 2006 Share Posted August 22, 2006 By: nsorochan - nsorochan Crosstabs and NullPointerException 2006-01-09 16:17In my report, I have a report level query and a crosstab using another dataset. The crosstab receives a parameter value from the report level dataset. The report displays properly when there is data. However, If the crosstab dataset returns no data, I get a nullpointerexception. Can anyone tell me how I can get rid of this? By: Lucian Chirita - lucianc RE: Crosstabs and NullPointerException 2006-01-10 00:11Could you post more details: JR version, exception stack trace? Regards, Lucian By: nsorochan - nsorochan RE: Crosstabs and NullPointerException 2006-01-10 15:49Sorry version is 1.1.1 By: nsorochan - nsorochan RE: Crosstabs and NullPointerException 2006-01-10 13:01version is 0.5.3 13:53:52,704 INFO [sTDOUT] 13:53:52,703 ERROR [ReportWriteProviderImpl] Error creating report: java.lang.NullPointerException java.lang.NullPointerException at net.sf.jasperreports.engine.fill.JRFillCrosstab$CrosstabFiller.fill(JRFillCrosstab.java:747) at net.sf.jasperreports.engine.fill.JRFillCrosstab.prepare(JRFillCrosstab.java:437) at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:278) at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:313) at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:279) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1309) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:639) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:230) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:826) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:697) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247) at org.efs.openreports.providers.impl.ReportWriteProviderImpl.fillReport(ReportWriteProviderImpl.java:103) at org.efs.openreports.actions.ReportRunAction.execute(ReportRunAction.java:165) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at org.efs.openreports.interceptors.SecurityInterceptor.intercept(SecurityInterceptor.java:56) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115) at com.opensymphony.xwork.ActionChainResult.execute(ActionChainResult.java:115) at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:263) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:187) at org.efs.openreports.interceptors.SecurityInterceptor.intercept(SecurityInterceptor.java:56) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115) at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:280) at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:250) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter(RequestLifecycleFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:534) 13:53:52,705 INFO [sTDOUT] 13:53:52,705 ERROR [ReportRunAction] Error creating report: java.lang.NullPointerException By: Lucian Chirita - lucianc RE: Crosstabs and NullPointerException 2006-01-11 03:24This was a bug introduced in 1.1.1 and fixed on CVS in JRFillCrosstab.java rev 1.17. It occurs when the first crosstab does not contain any data. Regards, Lucian By: nsorochan - nsorochan RE: Crosstabs and NullPointerException 2006-01-11 10:29ya, problem is, is that I downloaded just that file and tried to compile, but it would not compile as there must have been other fixes. So I checked out the whole jasperreports repository and compiled it and it compiled (just some warnings about deprecated methods). But, we are using a 3rd party application called OpenReports, and I tried to use this "new version" with openreports and it would not work. I put in a line of code that catches the nullpointerexception. The reports do not crash now, but it is still not the proper fix. We will just have to wait until openreports "catches up" with Jasper. thanx By: Lucian Chirita - lucianc RE: Crosstabs and NullPointerException 2006-01-11 23:26You should do this: see the diff between the 1.17 and 1.16 revisions: http://cvs.sourceforge.net/viewcvs.py/jasperreports/jasperreports/src/net/sf/jasperreports/engine/fill/JRFillCrosstab.java?r1=1.16&r2=1.17 Apply the change to the 1.15 revision (which is the 1.1.1 realease revision). The fix consists of moving the printRows = new ArrayList(); line from the CrosstabFiller.initCrosstab() crosstab method to the inner class CrosstabFiller constructor. HTH, Lucian By: nsorochan - nsorochan RE: Crosstabs and NullPointerException 2006-01-12 12:17thanx, this was a better fix than I did. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now