diff --git a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/ReportDocumentWriter.java b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/ReportDocumentWriter.java index 5716ff44310..a5e155e7c31 100644 --- a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/ReportDocumentWriter.java +++ b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/ReportDocumentWriter.java @@ -365,6 +365,15 @@ private String getBuildNumber( ) return "UNKNOWN"; } + public void removeReportletDoucment( ) + { + if ( archive.exists( REPORTLET_DOCUMENT_STREAM ) ) + { + archive.dropStream( REPORTLET_DOCUMENT_STREAM ); + } + } + + public void saveReportletDocument( String bookmark, InstanceID iid ) throws IOException { diff --git a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/RunTask.java b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/RunTask.java index fa3cfd6bc7c..c81c6bbb7c1 100644 --- a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/RunTask.java +++ b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/RunTask.java @@ -161,10 +161,17 @@ private void openReportDocument( ) throws EngineException writer = new ReportDocumentWriter( engine, archiveWriter, exts ); executionContext.setReportDocWriter( writer ); DocumentDataSource ds = executionContext.getDataSource( ); - if ( ds != null && ds.isReportletDocument( ) ) + if ( ds != null) { - writer.saveReportletDocument( ds.getBookmark( ), ds - .getInstanceID( ) ); + if( ds.isReportletDocument( )) + { + writer.saveReportletDocument( ds.getBookmark( ), ds + .getInstanceID( ) ); + } + else + { + writer.removeReportletDoucment( ); + } } } catch ( IOException ex )