Installing custom jasper reports fails with FileNotFoundException

Dear all,

I’m trying to install a custom jasper report in my Bonita 6.5.0 Performance installation (as described here). Unfortunately I fail at the last step of installation getting java.io.FileNotFoundException (stacktrace below).

I’ve catched the exception using debuging tool and found out that FileInputStream’s constructor has been given file that points to directory (the ‘tmp’ folder). This is causing the exception as this constructor’s javadoc says:

 * If the named file does not exist, is a directory rather than a regular
 * file, or for some other reason cannot be opened for reading then a
 * FileNotFoundException is thrown.

I would take a look at ReportDatastore class but I don’t have sources. Please let me know how can I bypass this issue.

Best regards,
Aleksander

Here is the stacktrace:
2015-04-21 15:48:47 org.bonitasoft.web.toolkit.server.servlet.ToolkitHttpServlet
SEVERE: java.io.FileNotFoundException: C:\dev\BonitaBPMSubscription-6.5.0\workspace\tomcat\bonita\client\tenants\1\tmp (Odmowa dostępu)
org.bonitasoft.web.toolkit.client.common.exception.api.APIException: java.io.FileNotFoundException: C:\dev\BonitaBPMSubscription-6.5.0\workspace\tomcat\bonita\client\tenants\1\tmp
at com.bonitasoft.web.rest.server.datastore.monitoring.report.ReportDatastore.createEngineReport(ReportDatastore.java:266)
at com.bonitasoft.web.rest.server.datastore.monitoring.report.ReportDatastore.addReport(ReportDatastore.java:126)
at com.bonitasoft.web.rest.server.datastore.monitoring.report.ReportDatastore.add(ReportDatastore.java:102)
at com.bonitasoft.web.rest.server.api.monitoring.report.APIReport.add(APIReport.java:71)
at com.bonitasoft.web.rest.server.api.monitoring.report.APIReport.add(APIReport.java:47)
at org.bonitasoft.web.rest.server.framework.API.runAdd(API.java:156)
at org.bonitasoft.web.rest.server.framework.APIServletCall.doPost(APIServletCall.java:215)
at org.bonitasoft.web.toolkit.server.servlet.ToolkitHttpServlet.doPost(ToolkitHttpServlet.java:188)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at org.bonitasoft.web.toolkit.server.servlet.ToolkitHttpServlet.service(ToolkitHttpServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.bonitasoft.web.toolkit.server.servlet.ToolkitHttpServlet.service(ToolkitHttpServlet.java:226)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.bonitasoft.console.common.server.login.filter.AbstractAuthorizationFilter.doFilter(AbstractAuthorizationFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.bonitasoft.console.common.server.login.filter.AbstractAuthorizationFilter.doFilter(AbstractAuthorizationFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.bonitasoft.console.security.SessionFixationValve.invoke(SessionFixationValve.java:77)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: C:\dev\BonitaBPMSubscription-6.5.0\workspace\tomcat\bonita\client\tenants\1\tmp ()
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:131)
at com.bonitasoft.web.rest.server.datastore.monitoring.report.ReportDatastore.createEngineReport(ReportDatastore.java:248)
… 54 more

Ok. I’ve got the solution. The screenshot must be provided at the report installation form.

I know that this problem is not related to community version but I’ll leave it here in case someone using subscription pack will ask google for help.