Fix access to data from customised project storage locations
I am trying the software “birt-report-designer-all-in-one-4.9.0-20220315-linux.gtk.x86_64.zip” out also together with files which were stored in a customised directory for the report project “BIRT-Probe”. I configured a data set and a simple list layout within the file “Test_data1-20220328-B-list.rptdesign” as expected. I would like to view the report as the usual designer preview. Unfortunately, I got surprised by the following information.
- The report file : Test_data1-20220328-B-list.rptdesign does not exist or contains errors.
org.eclipse.birt.report.exception.ViewerException: The report file : Test_data1-20220328-B-list.rptdesign does not exist or contains errors.
at org.eclipse.birt.report.context.ViewerAttributeBean.getDesignHandle(ViewerAttributeBean.java:596)
at org.eclipse.birt.report.context.ViewerAttributeBean.__init(ViewerAttributeBean.java:252)
at org.eclipse.birt.report.context.BaseAttributeBean.init(BaseAttributeBean.java:228)
at org.eclipse.birt.report.context.ViewerAttributeBean.<init>(ViewerAttributeBean.java:150)
at org.eclipse.birt.report.context.BirtContext.__init(BirtContext.java:42)
at org.eclipse.birt.report.context.BaseContext.<init>(BaseContext.java:69)
at org.eclipse.birt.report.context.BirtContext.<init>(BirtContext.java:30)
at org.eclipse.birt.report.servlet.ViewerServlet.__getContext(ViewerServlet.java:144)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doGet(BirtSoapMessageDispatcherServlet.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:497)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:332)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:115)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1419)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1619)
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:71)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:580)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1372)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:463)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1294)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:711)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:562)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:406)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:663)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:398)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SocketChannelEndPoint$1.run(SocketChannelEndPoint.java:101)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
at java.base/java.lang.Thread.run(Thread.java:833)
:crystal_ball: How will the chances evolve to fix affected software components?
Do you get a similar error if you use the menu Run / View Report / As HTML? or ... / As PDF?
It is important that you create a "Report Project" where you store your *.rptdesign files
(Note: the screenshots are from BIRT 4.2.1)
and that the resources which your reports use (*.rptlibrary and *.js files and images) can be found

In my case, I am using a project folder xxx/birt for the reports and a sub-directory xxx/birt/res for the resources.
Do you get a similar error if you use the menu Run / View Report / As HTML? or ... / As PDF?
Yes.
It is important that you create a "Report Project" where you store your *.rptdesign files
I thought that I did this.
Markus_Elfring@…:~/Aktivitäten/BIRT/Probe> ls -l
…
-rw-r--r-- 1 Markus_Elfring users 8625 29. Mär 09:36 Test_data1-20220328-B-list.rptdesign
-rw-r--r-- 1 Markus_Elfring users 193 28. Mär 16:14 Test_data1-20220328.xml
My warning bells are ringing when I see umlauts in directory names.
Can you reproduce the issue with ASCII-only file and directory names?