NPE with stack trace trying to loadObject(File) 09/24/2008 19:05
On Windows I'm getting the follow stack trace when trying to load a compiled .jasper file (happens with any report...even very simple ones)
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
Truncated. see log file for complete stacktrace
I've seen this before when trying to load a compiled version of a report on a different version of JasperReports but in this case the library i'm using on Weblogic is jasperreports-3.0.1-javaflow.jar and the report was written/comiled with iReport 3.0.0. I have not set older compatibility, etc.
The report actually runs fine in iReport as well. It also runs fine in the web environment when run on Linux or Mac OS X. I am having the issue on Windows XP and Vista. Java 1.5.0_16 running both the app server and iReport. I do not have any older versions of Jasper on my system .... everything is version 3. Doesn't make a difference whether I'm exporting to HTML, PDF, whatever. It simply can't load the compiled report.
I've almost lost all my hair due to tearing it out over not being able to get around this NPE. I'm hoping someone here has an idea of what is going on.
I've tried searching the bug tracker but, quite frankly, that tracker doesnt work worth a damn and I couldn't find anything. Why an open source java project isn't using JIRA is beyond me but thats another post.
RE:NPE with stack trace trying to loadObject(File) 09/25/2008 08:56
Are you sure you don't have an older JR version on your application's classpath?
Because the stacktrace you posted does not correspond to JR 3.0.1 sources - in JR 3.0.1 JRPropertiesMap.java:185 does not fall in the readObject method.
You can check the JR version at runtime by doing something like
RE:NPE with stack trace trying to loadObject(File) 09/25/2008 20:28
Thanks Lucian. I'll give that a try. Pretty sure there arent older copies anywhere since I deleted even the copy of jasper 2.x that I had in a download directory :) But none of this makes sense so I'll follow your suggestion and see if somehow I missed something.
RE:NPE with stack trace trying to loadObject(File) 09/26/2008 02:19
Lucian-
You were right :) Somehow an old copy made its way into the deployment dir in a cache location and the system was loading stuff from there. Very odd but thanks a lot! I'll stop losing my hair now :)
RE:NPE with stack trace trying to loadObject(File) 09/26/2008 02:27
OK. This is really odd and I'm posting this just in case someone might find themselves in the same situation with the same software.
I'm running MyEclipse 6.5 with Weblogic 9.2 on Windows XP. We have been using JasperReports 3.0 for several releases of one of our web applications. I started with Jasper 2.0.5.
Weblogic, when it runs, keeps a cache of items in your domain directory in a location similar to:
For some reason all 4 versions of the JasperReports library are in there when we only deploy one version to APP-INF/lib. The odd thing is that its not even the javaflow version we switched to when we moved to version 3 of the library. We now have versions 2.0.5, 3.0 (javaflow), 3.0.1 (javaflow), 3.1.0 (javaflow). (I had tried 3.1.0 in desperation).
So not only did Lucian solve my problem but I also learned something new about the Class class and how to find out where resources are loading from.
RE:NPE with stack trace trying to loadObject(File) 06/02/2009 11:06
Hi
I am also facing the same problem. When I use the newer version of iReport(3.5.1) to generate the report i am getting this exception.
But when I use the older version of iReport(2.0.5) to generate the report I am not getting this exception.
Is this a bug in iReport or JasperReport?
The following is the exception I am getting when I use iReport 3.5.1
I am in the urgent need of the fix for this issue. Any help in this regard will be appreciated.
DNV Srikanth
Code:
09/06/02 16:33:26 java.lang.NullPointerException
09/06/02 16:33:26 at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
09/06/02 16:33:26 at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
09/06/02 16:33:26 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
09/06/02 16:33:26 at java.lang.reflect.Method.invoke(Method.java:585)
09/06/02 16:33:26 at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:919)
09/06/02 16:33:26 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1813)
09/06/02 16:33:26 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
09/06/02 16:33:26 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
09/06/02 16:33:26 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
09/06/02 16:33:26 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
09/06/02 16:33:26 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
09/06/02 16:33:26 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
09/06/02 16:33:26 at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1628)
09/06/02 16:33:26 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1293)
09/06/02 16:33:26 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
09/06/02 16:33:26 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
09/06/02 16:33:26 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
09/06/02 16:33:26 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
09/06/02 16:33:27 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
09/06/02 16:33:27 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
09/06/02 16:33:27 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
09/06/02 16:33:27 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
09/06/02 16:33:27 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
09/06/02 16:33:27 at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
09/06/02 16:33:27 at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:515)
09/06/02 16:33:27 at com.knoahsoft.report.EvaluationScoresReport.createJasperPrint(EvaluationScoresReport.java:547)
09/06/02 16:33:27 at com.knoahsoft.report.EvaluationScoresReport.runReportToStream(EvaluationScoresReport.java:111)
09/06/02 16:33:27 at com.knoahsoft.genericreportframework.ReportServiceImpl.runReport(ReportServiceImpl.java:28)
09/06/02 16:33:27 at com.knoahsoft.client.reports.Report.generateReport(Report.java:434)
09/06/02 16:33:27 at com.knoahsoft.client.reports.Report.<init>(Report.java:163)
09/06/02 16:33:27 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
09/06/02 16:33:27 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
09/06/02 16:33:27 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
09/06/02 16:33:27 at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
09/06/02 16:33:27 at java.lang.Class.newInstance0(Class.java:350)
09/06/02 16:33:27 at java.lang.Class.newInstance(Class.java:303)
09/06/02 16:33:27 at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:277)
09/06/02 16:33:27 at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:268)
09/06/02 16:33:27 at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:49)
09/06/02 16:33:27 at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:314)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:54)
09/06/02 16:33:27 at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:570)
09/06/02 16:33:27 at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
09/06/02 16:33:27 at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
09/06/02 16:33:27 at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386)
09/06/02 16:33:27 at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:427)
09/06/02 16:33:27 at javax.faces.webapp.UIComponentTag.createComponentInstance(UIComponentTag.java:709)
09/06/02 16:33:27 at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:596)
09/06/02 16:33:27 at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:315)
09/06/02 16:33:27 at org.apache.myfaces.trinidad.webapp.UIXComponentTag.doStartTag(UIXComponentTag.java:104)
09/06/02 16:33:27 at _client._reports._report_jspx._jspService(_report_jspx.java:78)
09/06/02 16:33:27 at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
09/06/02 16:33:27 at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
09/06/02 16:33:27 at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
09/06/02 16:33:27 at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
09/06/02 16:33:27 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:287)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:51)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
09/06/02 16:33:27 at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
09/06/02 16:33:27 at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
09/06/02 16:33:27 at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
09/06/02 16:33:27 at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
09/06/02 16:33:27 at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
09/06/02 16:33:27 at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
09/06/02 16:33:27 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:287)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:51)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
09/06/02 16:33:27 at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
09/06/02 16:33:27 at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
09/06/02 16:33:27 at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260)
09/06/02 16:33:27 at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
09/06/02 16:33:27 at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
09/06/02 16:33:27 at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
09/06/02 16:33:27 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
09/06/02 16:33:27 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
09/06/02 16:33:27 at com.knoahsoft.util.MDCFilter.doFilter(MDCFilter.java:59)
09/06/02 16:33:27 at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:253)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:210)
09/06/02 16:33:27 at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:164)
09/06/02 16:33:27 at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
09/06/02 16:33:27 at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
09/06/02 16:33:27 at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
09/06/02 16:33:27 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
09/06/02 16:33:27 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
09/06/02 16:33:27 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
09/06/02 16:33:27 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
09/06/02 16:33:27 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
09/06/02 16:33:27 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
09/06/02 16:33:27 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
09/06/02 16:33:27 at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
09/06/02 16:33:27 at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
09/06/02 16:33:27 at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
09/06/02 16:33:27 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
09/06/02 16:33:27 at java.lang.Thread.run(Thread.java:595)
"The sample output from JasperReports shows amazing depth in what is possible. The JFreeChart eye candy is amazing. The scope and sheer number of types of reports indicates a great deal of effort."