Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 357987 - Getting "java.io.EOFException: Exceed the file length" error when previewing a report in progressive view mode
Summary: Getting "java.io.EOFException: Exceed the file length" error when previewing ...
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: BIRT (show other bugs)
Version: 3.7.0   Edit
Hardware: PC Windows 7
: P3 major (vote)
Target Milestone: 3.7.1   Edit
Assignee: Birt-ReportEngine-inbox@eclipse.org CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-16 15:46 EDT by ivkina CLA
Modified: 2011-09-19 14:34 EDT (History)
1 user (show)

See Also:


Attachments
rptdesign file (18.44 KB, application/octet-stream)
2011-09-16 15:48 EDT, ivkina CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description ivkina CLA 2011-09-16 15:46:29 EDT
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">&#xa0;</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
Comment 1 ivkina CLA 2011-09-16 15:48:03 EDT
Created attachment 203522 [details]
rptdesign file
Comment 2 ivkina CLA 2011-09-16 15:49:51 EDT
Eclipse Platform/ BIRT Version and Build ID

Version: 3.7.0
Build id: I20110613-1736
Comment 3 ivkina CLA 2011-09-19 14:08:38 EDT
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.
Comment 4 Wei Yan CLA 2011-09-19 14:30:43 EDT
Fixed in 3.7.1
Comment 5 ivkina CLA 2011-09-19 14:34:38 EDT
Thanks for the fix! Could you please tell when 3.7.1 should be available?