Why does the Export Form Email Tool cause a java.lang.NullPointerException error?

Confluence User - 08 Aug, 2018

Hello, I'm trying to send a form in an email but it's causing an error.

I've used the Export Form Email Tool before and it works. I've tried sending another simple form that only has one field and it works, so apparently, certain forms are causing the error. (the email tool with no form-exporting works as well)

Here's the log for the email sending:

INFO  08 Aug 2018 05:56:18 org.joget.plugin.enterprise.ExportFormEmailTool  - ExportFormEmailTool: Generate PDF start.
ERROR 08 Aug 2018 05:56:18 org.joget.apps.form.service.FormPdfUtil  - org.xml.sax.SAXParseException; lineNumber: 80; columnNumber: 580; The content of elements must consist of well-formed character data or markup.
org.xml.sax.SAXParseException; lineNumber: 80; columnNumber: 580; The content of elements must consist of well-formed character data or markup.
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
    at org.joget.apps.form.service.FormPdfUtil.createPdf(FormPdfUtil.java:108)
    at org.joget.plugin.enterprise.ExportFormEmailTool.createPdf_aroundBody14(ExportFormEmailTool.java:95)
    at org.joget.plugin.enterprise.ExportFormEmailTool.createPdf_aroundBody15$advice(ExportFormEmailTool.java:95)
    at org.joget.plugin.enterprise.ExportFormEmailTool.createPdf(ExportFormEmailTool.java:1)
    at org.joget.plugin.enterprise.ExportFormEmailTool.sendEmail_aroundBody18(ExportFormEmailTool.java:198)
    at org.joget.plugin.enterprise.ExportFormEmailTool.sendEmail_aroundBody19$advice(ExportFormEmailTool.java:95)
    at org.joget.plugin.enterprise.ExportFormEmailTool.sendEmail(ExportFormEmailTool.java:1)
    at org.joget.plugin.enterprise.ExportFormEmailTool.execute_aroundBody12(ExportFormEmailTool.java:55)
    at org.joget.plugin.enterprise.ExportFormEmailTool.execute_aroundBody13$advice(ExportFormEmailTool.java:95)
    at org.joget.plugin.enterprise.ExportFormEmailTool.execute(ExportFormEmailTool.java:1)
    at org.joget.apps.app.service.AppWorkflowHelper.executeTool(AppWorkflowHelper.java:125)
    at org.joget.workflow.shark.WorkflowToolActivityHandler.executeActivity(WorkflowToolActivityHandler.java:69)
    at org.enhydra.shark.WfActivityImpl.runTool(WfActivityImpl.java:1487)
    at org.enhydra.shark.WfActivityImpl.startActivity(WfActivityImpl.java:1419)
    at org.enhydra.shark.WfActivityImpl.activate(WfActivityImpl.java:261)
    at org.enhydra.shark.WfProcessImpl.startActivity(WfProcessImpl.java:918)
    at org.enhydra.shark.WfProcessImpl.queueNext(WfProcessImpl.java:1134)
    at org.enhydra.shark.WfProcessImpl.run(WfProcessImpl.java:750)
    at org.enhydra.shark.WfProcessImpl.activity_complete(WfProcessImpl.java:969)
    at org.enhydra.shark.WfActivityImpl.finish(WfActivityImpl.java:441)
    at org.enhydra.shark.WfActivityImpl.complete(WfActivityImpl.java:366)
    at org.enhydra.shark.WfActivityWrapper.complete(WfActivityWrapper.java:230)
    at org.joget.workflow.model.service.WorkflowManagerImpl.assignmentComplete(WorkflowManagerImpl.java:4241)
    at org.joget.workflow.model.service.WorkflowManagerImpl.assignmentComplete(WorkflowManagerImpl.java:4264)
    at sun.reflect.GeneratedMethodAccessor446.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.joget.apps.app.service.AuditTrailInterceptor.invoke(AuditTrailInterceptor.java:17)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.joget.apps.app.service.SqlFilterAspect.invoke(SqlFilterAspect.java:36)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
    at com.sun.proxy.$Proxy26.assignmentComplete(Unknown Source)
    at org.joget.apps.app.service.AppServiceImpl.completeAssignmentForm(AppServiceImpl.java:403)
    at sun.reflect.GeneratedMethodAccessor444.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
    at com.sun.proxy.$Proxy57.completeAssignmentForm(Unknown Source)
    at org.joget.apps.userview.lib.RunProcess.assignmentSubmit_aroundBody28(RunProcess.java:466)
    at org.joget.apps.userview.lib.RunProcess.assignmentSubmit_aroundBody29$advice(RunProcess.java:95)
    at org.joget.apps.userview.lib.RunProcess.assignmentSubmit(RunProcess.java:1)
    at org.joget.apps.userview.lib.RunProcess.getJspPage_aroundBody20(RunProcess.java:206)
    at org.joget.apps.userview.lib.RunProcess.getJspPage_aroundBody21$advice(RunProcess.java:95)
    at org.joget.apps.userview.lib.RunProcess.getJspPage(RunProcess.java:1)
    at org.joget.apps.userview.model.UserviewMenu.getReadyJspPage_aroundBody12(UserviewMenu.java:132)
    at org.joget.apps.userview.model.UserviewMenu.getReadyJspPage_aroundBody13$advice(UserviewMenu.java:95)
    at org.joget.apps.userview.model.UserviewMenu.getReadyJspPage(UserviewMenu.java:1)
    at org.joget.apps.userview.service.UserviewUtil.getUserviewMenuHtml(UserviewUtil.java:94)
    at org.joget.apps.userview.service.UserviewThemeProcesser.getContent(UserviewThemeProcesser.java:593)
    at org.joget.apps.userview.service.UserviewThemeProcesser.getHtml(UserviewThemeProcesser.java:168)
    at sun.reflect.GeneratedMethodAccessor276.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:94)
    at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
    at org.apache.jsp.WEB_002dINF.jsp.ubuilder.v5view_jsp._jspx_meth_c_005fset_005f0(v5view_jsp.java:250)
    at org.apache.jsp.WEB_002dINF.jsp.ubuilder.v5view_jsp._jspx_meth_c_005fif_005f0(v5view_jsp.java:207)
    at org.apache.jsp.WEB_002dINF.jsp.ubuilder.v5view_jsp._jspService(v5view_jsp.java:158)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:392)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.joget.commons.util.AnalyzerFilter.doFilter_aroundBody0(AnalyzerFilter.java:17)
    at org.joget.commons.util.AnalyzerFilter.doFilter_aroundBody1$advice(AnalyzerFilter.java:54)
    at org.joget.commons.util.AnalyzerFilter.doFilter(AnalyzerFilter.java:1)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:88)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
    at org.joget.apps.workflow.security.WorkflowHttpAuthProcessingFilter.doFilter(WorkflowHttpAuthProcessingFilter.java:85)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
    at org.joget.commons.spring.web.CustomDelegatingFilterProxy.doFilter(CustomDelegatingFilterProxy.java:31)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.joget.apps.app.web.ExpireFilter.doFilter(ExpireFilter.java:44)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
INFO  08 Aug 2018 05:56:18 org.joget.plugin.enterprise.ExportFormEmailTool  - ExportFormEmailTool: Generate PDF finish.
ERROR 08 Aug 2018 05:56:18 org.joget.plugin.enterprise.ExportFormEmailTool  - java.lang.NullPointerException
java.lang.NullPointerException
    at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106)
    at org.joget.plugin.enterprise.ByteArrayDataSource.getInputStream(ByteArrayDataSource.java:22)
    at org.apache.commons.mail.MultiPartEmail.attach(MultiPartEmail.java:421)
    at org.joget.plugin.enterprise.ExportFormEmailTool$1.run(ExportFormEmailTool.java:212)
    at java.lang.Thread.run(Thread.java:748)
    at org.joget.commons.util.PluginThread.run(PluginThread.java:22)
ERROR 08 Aug 2018 05:56:18 Shark  - Process [key=2338_driverRequestProcess_driverRequest,mgrname=driverRequestProcess#40#driverRequest] will try to finish after [Process Id=2338_driverRequestProcess_driverRequest, Id=5127_2338_driverRequestProcess_driverRequest_notifyFleetOfRequesterApproval, ba=null, ActDefId=notifyFleetOfRequesterApproval] is executed because kernel is configured not to allow hanging and not to rollback
INFO  08 Aug 2018 05:56:22 org.joget.apps.workflow.security.WorkflowAuthenticationProvider  - Authentication for user admin (172.31.15.126) : true



nullpointerexception;error;export-form-email;email-tool

6


08 Aug, 2018
confluenceUser
confluenceUser

I think you have CUSTOM HTML in your form thus it is throwing this error. You need to correct them.

ERROR 08 Aug 2018 05:56:18 org.joget.apps.form.service.FormPdfUtil  - org.xml.sax.SAXParseException; lineNumber: 80; columnNumber: 580; The content of elements must consist of well-formed character data or markup.
org.xml.sax.SAXParseException; lineNumber: 80; columnNumber: 580; The content of elements must consist of well-formed character data or markup.


08 Aug, 2018
confluenceUser
confluenceUser

So, if there's a custom HTML, the form can't be exported and sent?

08 Aug, 2018
confluenceUser
confluenceUser

What is the right way to use custom HTMLs inside forms, so that the forms can still be exported and sent?

09 Aug, 2018
confluenceUser
confluenceUser

There's syntax error in your custom HTML, you can check using https://validator.w3.org/#validate_by_input and fix it.

09 Aug, 2018
confluenceUser
confluenceUser

Hi, you will need to ensure that your HTML tags are closed properly for example <br /> instead of just <br>.

11 Aug, 2018
confluenceUser
confluenceUser

What's the right form to use HTML inside a form, should I include the <!doctype html>? Also, if I'm only adding a script, should it be in the following form: <!doctype html> <script> //js script </script> Should I add the type="text/javascript" to the script tag?

RELATED QUESTIONS

Your answer


To answer a question you'll need an account.

Print