Pentaho

 View Only

 Error in dashboard CDE to download charts as image

Jason Serrano's profile image
Jason Serrano posted 02-10-2023 15:29

Hi,

 

I have an error with a CDE Dashboard. I’m creating a dashboard with options to download data and download the charts as image. For download data, I’m using the Export Button Component and to download the chart as image, I’m using html2canvas with a HTML Button. I chose html2canvas because the option available in Pentaho named as “Export Popup Component” export the chart without the settings displayed in the dashboard.

 

The function html2canvas works fine to export the charts, but if I use the function to export data (Export Button Component) before, and then I export a chart as image (html2canvas function), the system displays an error. However, the chart is saved correctly as an image. If I only use the option to download the chart as image with different charts the function works without errors. But if I use the function to export data, the system shows the error.

Thanks in advance for the help.

Regards,

Jason.

Information related to the issue:

Function html2canvas:

function downloadimage(chartDiv) {

            var container = document.getElementById(chartDiv);/*specific element on page*/

            html2canvas(container, { allowTaint: true }).then(function (canvas) {

            var link = document.createElement("a");

            document.body.appendChild(link);

            link.download = "grafico.png";

            link.href = canvas.toDataURL();

            link.target = '_blank';

            link.click();

            document.body.removeChild(link);

            link.remove();

                });

            return true;

            }

Error displayed in console:

document-cloner.ts:136          GET /pentaho/plugin/cda/api/unwrapQuery?path=%2Fhome%2Fjaserrano%2FPlantilla+2023.cda&uuid=396b75ba-acfb-47cf-aa3c-4c6ebf7ebb07 500 (Internal Server Error)

Error displayed in Catalina.out:

 

13:57:42,556 ERROR [CdaUtils] java.lang.NullPointerException

10-Feb-2023 13:57:42.556 SEVERE [http-nio-8080-exec-6] com.sun.jersey.spi.container.ContainerResponse.logException Mapped exception to response: 500 (Internal Server Error)

 javax.ws.rs.WebApplicationException: java.lang.NullPointerException

            at pt.webdetails.cda.CdaUtils.unwrapQuery(CdaUtils.java:262)

            at sun.reflect.GeneratedMethodAccessor416.invoke(Unknown Source)

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

            at java.lang.reflect.Method.invoke(Method.java:498)

            at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)

            at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:167)

            at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)

            at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)

            at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)

            at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)

            at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)

            at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)

            at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)

            at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)

            at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)

            at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)

            at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)

            at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)

            at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)

            at org.pentaho.platform.web.servlet.JAXRSPluginServlet.service(JAXRSPluginServlet.java:112)

            at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

            at org.pentaho.platform.web.servlet.JAXRSPluginServlet.service(JAXRSPluginServlet.java:117)

            at pt.webdetails.cpf.JAXRSCLPluginServlet.service(JAXRSCLPluginServlet.java:37)

            at org.pentaho.platform.web.servlet.PluginDispatchServlet.service(PluginDispatchServlet.java:89)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.pentaho.platform.web.http.filters.PentahoWebContextFilter.doFilter(PentahoWebContextFilter.java:195)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.pentaho.platform.web.http.filters.PentahoRequestContextFilter.doFilter(PentahoRequestContextFilter.java:87)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            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.pentaho.platform.web.http.security.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:191)

            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.pentaho.platform.web.http.security.PentahoBasicProcessingFilter.doFilterInternal(PentahoBasicProcessingFilter.java:125)

            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.pentaho.platform.web.http.filters.HttpSessionPentahoSessionIntegrationFilter.doFilter(HttpSessionPentahoSessionIntegrationFilter.java:271)

            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

            at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)

            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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.pentaho.platform.web.http.filters.SystemStatusFilter.doFilter(SystemStatusFilter.java:55)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.pentaho.platform.web.http.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:114)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.pentaho.platform.web.http.filters.WebappRootForwardingFilter.doFilter(WebappRootForwardingFilter.java:70)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.pentaho.platform.web.http.filters.PentahoPathDecodingFilter.doFilter(PentahoPathDecodingFilter.java:34)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)

            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)

            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

            at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)

            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)

            at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)

            at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)

            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1533)

            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1489)

            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)

Caused by: java.lang.NullPointerException

            at pt.webdetails.cda.CdaUtils.unwrapQuery(CdaUtils.java:258)

            ... 90 more