I tried to make a sample project using code from a tutorial I found for the 
JasperReports plugin 
(https://struts.apache.org/docs/jasperreports-tutorial.html 
<https://struts.apache.org/docs/jasperreports-tutorial.html>). 

I’m seeing a NullPointerException in my logs when I try to run the report (see 
below). It’s complaining about not closing a db connection even though no db 
connection is made. I uploaded a small project demonstrating the issue: 
https://github.com/jpe90/struts2jasper <https://github.com/jpe90/struts2jasper>

Am I doing something wrong or is this a bug?

Error:

2017-07-13 19:59:56,616 WARN  [http-nio-8080-exec-6] 
jasperreports.JasperReportsResult (JasperReportsResult.java:392) - Could not 
close db connection properly
java.lang.NullPointerException: null
        at 
org.apache.struts2.views.jasperreports.JasperReportsResult.doExecute(JasperReportsResult.java:390)
 [struts2-jasperreports-plugin-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:208)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:253)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:177)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:260)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:73)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:139)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:133)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:133)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:192)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:69)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:115)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:88)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:246)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:99)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:139)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:155)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:174)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:120)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:171)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:195)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:193)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:54) 
[struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) 
[struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:81)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:143)
 [struts2-core-2.5.10.1.jar:2.5.10.1]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
[catalina.jar:8.5.16]
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) 
[catalina.jar:8.5.16]
        at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
 [catalina.jar:8.5.16]
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 
[catalina.jar:8.5.16]
        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) 
[tomcat-coyote.jar:8.5.16]
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
 [tomcat-coyote.jar:8.5.16]
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
 [tomcat-coyote.jar:8.5.16]
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
 [tomcat-coyote.jar:8.5.16]
        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
[tomcat-coyote.jar:8.5.16]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[?:1.8.0_101]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[?:1.8.0_101]
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 [tomcat-util.jar:8.5.16]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]



Reply via email to