| Summary: | Getting "java.io.EOFException: Exceed the file length" error when previewing a report in progressive view mode | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | ivkina <alekseyivkin> | ||||
| Component: | BIRT | Assignee: | Birt-ReportEngine-inbox <Birt-ReportEngine-inbox> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | major | ||||||
| Priority: | P3 | CC: | wyan | ||||
| Version: | 3.7.0 | ||||||
| Target Milestone: | 3.7.1 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows 7 | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 203522 [details]
rptdesign file
Eclipse Platform/ BIRT Version and Build ID Version: 3.7.0 Build id: I20110613-1736 fyi...We opened the support case with Actuate BIRT (A11 SP1) also. They admitted that there was an issue there and provided us with the quick diagnostic fix. For your reference, the Actuate support case # - Actuate Case ID 337634. Fixed in 3.7.1 Thanks for the fix! Could you please tell when 3.7.1 should be available? |
Build Identifier: Build id: I20110613-1736/ We preview a report with progressive view mode turned on through Report Engine API. We check the report job status and IReportDocument.getPageCount() to see how many pages are built. Once the first pages are created we call IRenderTask to convert already generated page to html. Let's say IReportDocument.getPageCount() returns 300 and we request page #2...Should work, right? If the report is fully built at this point (all the pages are generated and IReportDocument.isComplete() says true) everything works fine and the page is returned correctly. But if the report is still generating we are getting the following error/exception thrown: java.io.EOFException: Exceed the file length. at org.eclipse.birt.core.archive.compound.ArchiveEntryInputStream.seek(ArchiveEntryInputStream.java:222) at org.eclipse.birt.report.engine.internal.document.v4.FixedLayoutPageHintReader.getPageVariables(FixedLayoutPageHintReader.java:132) at org.eclipse.birt.report.engine.internal.document.PageHintReader.getPageVariables(PageHintReader.java:78) at org.eclipse.birt.report.engine.api.impl.RenderTask.loadReportVariable(RenderTask.java:183) at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:257) at com.deltek.enterprise.system.reporting.birt.jca.impl.BirtManagedConnectionImpl.renderReport(BirtManagedConnectionImpl.java:1338) at com.deltek.enterprise.system.reporting.birt.jca.impl.BirtManagedConnectionImpl.renderReport(BirtManagedConnectionImpl.java:1290) at com.deltek.enterprise.system.reporting.birt.jca.impl.BirtManagedConnectionImpl.getReportData(BirtManagedConnectionImpl.java:578) at com.deltek.enterprise.system.reporting.birt.jca.BirtConnectionImpl.getReportData(BirtConnectionImpl.java:236) at com.deltek.enterprise.system.reporting.birt.jca.BirtConnectionImpl.execute(BirtConnectionImpl.java:197) at com.deltek.enterprise.system.reporting.birt.handlers.BirtBuildRequestHandler.build(BirtBuildRequestHandler.java:522) at com.deltek.enterprise.system.reporting.birt.handlers.BirtBuildRequestHandler.handleRequest(BirtBuildRequestHandler.java:90) at com.deltek.enterprise.system.reporting.handlers.RequestHandlerChain.handleRequest(RequestHandlerChain.java:38) at com.deltek.enterprise.system.reporting.birt.application.BirtAppReportRuntime.startRpt(BirtAppReportRuntime.java:198) at com.deltek.enterprise.system.reporting.birt.application.BirtAppReportRuntime.run(BirtAppReportRuntime.java:79) at com.deltek.enterprise.system.appmanagement.ReportDispatcher.run(ReportDispatcher.java:311) at com.deltek.enterprise.system.appmanagement.AppResultSet.doProcessReport(AppResultSet.java:4312) at com.deltek.enterprise.system.appmanagement.AppResultSet.dispatcher(AppResultSet.java:378) at com.deltek.enterprise.system.appmanagement.Application.dispatcher(Application.java:458) at com.deltek.enterprise.system.appmanagement.MasterServer.dispatcher(MasterServer.java:327) at com.deltek.enterprise.system.serverapi.serverapiimpl.masterbean.MasterEJB.dispatcher(MasterEJB.java:33) at com.deltek.enterprise.system.serverapi.serverapiimpl.masterbean.Master_k2sks9_EOImpl.__WL_invoke(Unknown Source) at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40) at com.deltek.enterprise.system.serverapi.serverapiimpl.masterbean.Master_k2sks9_EOImpl.dispatcher(Unknown Source) at com.deltek.enterprise.system.servlets.masterservlet.MasterServlet.service(MasterServlet.java:262) at javax.servlet.http.HttpServlet.service(HttpServlet.java:821) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:176) java.io.EOFException: Exceed the file length. at org.eclipse.birt.core.archive.compound.ArchiveEntryInputStream.seek(ArchiveEntryInputStream.java:222) at org.eclipse.birt.report.engine.internal.document.v4.FixedLayoutPageHintReader.getPageVariables(FixedLayoutPageHintReader.java:132) at org.eclipse.birt.report.engine.internal.document.PageHintReader.getPageVariables(PageHintReader.java:78) at org.eclipse.birt.report.engine.api.impl.RenderTask.loadReportVariable(RenderTask.java:183) at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:257) at com.deltek.enterprise.system.reporting.birt.jca.impl.BirtManagedConnectionImpl.renderReport(BirtManagedConnectionImpl.java:1338) at com.deltek.enterprise.system.reporting.birt.jca.impl.BirtManagedConnectionImpl.renderReport(BirtManagedConnectionImpl.java:1290) at com.deltek.enterprise.system.reporting.birt.jca.impl.BirtManagedConnectionImpl.getReportData(BirtManagedConnectionImpl.java:578) at com.deltek.enterprise.system.reporting.birt.jca.BirtConnectionImpl.getReportData(BirtConnectionImpl.java:236) at com.deltek.enterprise.system.reporting.birt.jca.BirtConnectionImpl.execute(BirtConnectionImpl.java:197) at com.deltek.enterprise.system.reporting.birt.handlers.BirtBuildRequestHandler.build(BirtBuildRequestHandler.java:522) at com.deltek.enterprise.system.reporting.birt.handlers.BirtBuildRequestHandler.handleRequest(BirtBuildRequestHandler.java:90) at com.deltek.enterprise.system.reporting.handlers.RequestHandlerChain.handleRequest(RequestHandlerChain.java:38) at com.deltek.enterprise.system.reporting.birt.application.BirtAppReportRuntime.startRpt(BirtAppReportRuntime.java:198) at com.deltek.enterprise.system.reporting.birt.application.BirtAppReportRuntime.run(BirtAppReportRuntime.java:79) at com.deltek.enterprise.system.appmanagement.ReportDispatcher.run(ReportDispatcher.java:311) at com.deltek.enterprise.system.appmanagement.AppResultSet.doProcessReport(AppResultSet.java:4312) at com.deltek.enterprise.system.appmanagement.AppResultSet.dispatcher(AppResultSet.java:378) at com.deltek.enterprise.system.appmanagement.Application.dispatcher(Application.java:458) at com.deltek.enterprise.system.appmanagement.MasterServer.dispatcher(MasterServer.java:327) at com.deltek.enterprise.system.serverapi.serverapiimpl.masterbean.MasterEJB.dispatcher(MasterEJB.java:33) at com.deltek.enterprise.system.serverapi.serverapiimpl.masterbean.Master_k2sks9_EOImpl.__WL_invoke(Unknown Source) at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40) at com.deltek.enterprise.system.serverapi.serverapiimpl.masterbean.Master_k2sks9_EOImpl.dispatcher(Unknown Source) at com.deltek.enterprise.system.servlets.masterservlet.MasterServlet.service(MasterServlet.java:262) at javax.servlet.http.HttpServlet.service(HttpServlet.java:821) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:176) Randomly, the exception is not thrown directly to java thread that executes run and render code but displayed in the report html output itself: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> .style_27 { font-family: "Courier New"; font-size: 8pt; padding: 0pt;} .style_26 { font-family: "Courier New"; font-size: 8pt; padding: 0pt;} .style_25 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 8pt; padding: 0pt;} .style_28 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 10pt; color: rgb(135, 133, 133); padding: 0pt;} .style_22 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 9pt; padding: 0pt;} .style_23 { font-family: "Courier New"; font-weight: normal; font-size: 8pt; padding: 0pt;} .style_21 { border-bottom: 0.03in double rgb(222, 219, 239);} .style_17 { font-family: "Courier New"; font-size: 8pt; padding: 0pt;} .style_2 { border-bottom: 0.02in solid rgb(0, 0, 0);} .style_18 { font-family: "Courier New"; font-weight: normal; font-size: 8pt; padding: 0pt;} .style_4 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 14pt; color: rgb(135, 133, 133); padding: 0pt;} .style_19 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 9pt; padding: 0pt; background-color: rgb(221, 221, 240);} .style_5 { font-family: "Courier New"; font-weight: bold; font-size: 8pt; padding: 0pt;} .style_14 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 14pt; padding: 0pt; background-color: rgb(221, 221, 240);} .style_0 { font-family: serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; color: black; text-indent: 0em; letter-spacing: normal; word-spacing: normal; text-transform: none; white-space: normal; line-height: normal;} .style_15 { font-family: "Courier New"; font-style: normal; font-weight: bold; font-size: 8pt; padding: 0pt;} .style_1 { font-family: "Courier New"; font-weight: bold; font-size: 13pt; padding: 0pt;} .style_16 { font-family: "Courier New"; font-size: 8pt; padding: 0pt;} .style_6 { font-family: "Courier New"; font-weight: normal; font-size: 8pt; padding: 0pt;} .style_7 { font-family: "Courier New"; font-size: 8pt; padding: 0pt;} .style_8 { font-family: "Courier New"; font-size: 8pt; padding: 0pt;} .style_9 { border-bottom: 0.01in solid rgb(222, 219, 239);} .style_10 { font-family: "Courier New"; font-style: normal; font-weight: normal; font-size: 8pt; padding: 0pt;} .style_12 { font-family: "Courier New"; font-size: 7pt; padding: 0pt;} .style_11 { font-family: "Courier New"; font-weight: bold; font-size: 8pt; padding: 0pt;} </style> <script type="text/javascript"> //<![CDATA[ function redirect(target, url){ if (target =='_blank'){ open(url); } else if (target == '_top'){ window.top.location.href=url; } else if (target == '_parent'){ location.href=url; } else if (target == '_self'){ location.href =url; } else{ open(url); } } //]]> </script> </head> <body class="style_0" style=" margin:0px;"> <table cellpadding="0" rules="none" border="0" style="empty-cells: show; width:7.739999999999999in; overflow: hidden; table-layout:fixed;"> <col></col> <tr> <td> <table style="border-collapse: collapse; empty-cells: show; width: 7.74in; overflow:hidden; table-layout:fixed;" id="AUTOGENBOOKMARK_1_a4f02b44-4254-40d2-97ad-7c174b1466c7"> <col></col> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_1" style=" text-align:center;">SuperTech, Inc.</div> </td> </tr> <tr class="style_2" valign="top" align="left"> <td style=" overflow:hidden; border-bottom: 0.02in solid rgb(0, 0, 0);"> <table style="border-collapse: collapse; empty-cells: show; width: 100%; overflow:hidden; table-layout:fixed;" id="AUTOGENBOOKMARK_2_5d38b0ac-2070-4910-abb7-7441bfde353a"> <col style=" width: 1.42in;"></col> <col></col> <col style=" width: 1.42in;"></col> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div> <img id="AUTOGENBOOKMARK_3_e14853e0-bfa2-46e7-891d-6b9bdb4b396f" src="/images/reports/custom12bd5fa1326a04c2b71" alt="" style=" width: 1in; height: 0.48in;display: block; vertical-align:middle;"></img> </div> </td> <td style=" overflow:hidden;"> <table style="border-collapse: collapse; empty-cells: show; width: 100%; overflow:hidden; table-layout:fixed;" id="AUTOGENBOOKMARK_4_d6e71730-5c2d-44d0-b622-89c40fd88cd5"> <col></col> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_4" id="AUTOGENBOOKMARK_5_aeb53d57-4f72-462a-b806-037a26163567" style=" text-align:center;">User Report</div> </td> </tr> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_5" style=" text-align:center;"> <div style="visibility:hidden"> </div> </div> </td> </tr> </table> </td> <td style=" overflow:hidden;"> <table style="border-collapse: collapse; empty-cells: show; width: 100%; overflow:hidden; table-layout:fixed;" id="AUTOGENBOOKMARK_6_8996274d-e58d-4f80-92d9-c011d152b0b1"> <col></col> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_6" id="AUTOGENBOOKMARK_7_6353903b-4e8c-418f-92f6-74ddf87a0a49" style=" text-align:right;">Page 1 of 299</div> </td> </tr> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_7" style=" text-align:right;">Sep 14, 2011 6:18 PM</div> </td> </tr> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_8" style=" text-align:right;">Sep 14, 2011 6:18 PM</div> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <td valign="top"></td> </tr> <tr> <td> <table style="border-collapse: collapse; empty-cells: show; width: 7.74in; overflow:hidden; table-layout:fixed;" id="AUTOGENBOOKMARK_8_410162f8-38c8-41ef-82a5-472f95dcbfee"> <col></col> <tr class="style_2" style=" height: 0.04in;" valign="top" align="left"> <td style=" overflow:hidden; padding: 0px; border-bottom: 0.02in solid rgb(0, 0, 0);" valign="top"> <div style="position: relative; height: 100%;"> <div style=" height: 0.04in; width: 100%; position: absolute; left: 0px; overflow:hidden;"></div> </div> </td> </tr> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_11" style=" text-align:left;">Privacy Statement</div> </td> </tr> <tr valign="top" align="left"> <td style=" overflow:hidden;"> <div class="style_12" style=" text-align:left;">This is confidential information</div> </td> </tr> </table> </td> </tr> </table> <hr style="color:red"/> <div style="color:red"> <div>The following items have errors: </div> <br> <div> <div id="error_title" style="text-decoration:underline">Table DataSetPortrTbl: </div> <div> <span id="error_icon0_0" style="cursor:pointer" onclick="if (document.getElementById('error_detail0_0').style.display == 'none') { document.getElementById('error_icon0_0').innerHTML = '- '; document.getElementById('error_detail0_0').style.display = 'block'; }else { document.getElementById('error_icon0_0').innerHTML = '+ '; document.getElementById('error_detail0_0').style.display = 'none'; }" > + </span>java.io.EOFException: Exceed the file length. (Element ID:374) <pre id="error_detail0_0" style="display:none;" >java.io.EOFException: Exceed the file length. ( 1 time(s) ) detail : org.eclipse.birt.report.engine.api.EngineException: java.io.EOFException: Exceed the file length. (Element ID:374) at org.eclipse.birt.report.engine.internal.document.v4.ContainerExecutor.hasNextChild(ContainerExecutor.java:117) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62) at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26) at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132) at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100) at org.eclipse.birt.report.engine.api.impl.RenderTask$PageRangeRender.render(RenderTask.java:681) at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:294) at com.deltek.enterpr... Reproducible: Always Steps to Reproduce: 1. See delayed.rptdesign attached. It has an overridden afterfactory(): java.lang.Thread.sleep(20 * 1000); That "mimics" long report execution. 2. Execute and preview a report through Engine API in progressive view mode (task.enableProgressiveViewing(true)). 3. The exception will be thrown - see Details section