Bug 206861 The data set cache should handle IOException and the cancel request from customer
The data set data will be saved into disk file in the first query and it will be loaded in the later time. The processing of write disk file may be cancelled by customer request or IOException. Using the data from the bad file will cause error.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/executor/cache/disk/DiskDataExport.java
* @param resultObject
	 * @param rs
	 * @param dataCountOfUnit
	 * @param stopSign
	 * @throws DataException, fetch data exception
	 * @throws IOException, file writer exception
	 * @return how much data is exported
	 */
	protected int innerExportRestData( IResultObject resultObject,
			IRowResultSet rs, int dataCountOfUnit, StopSign stopSign ) throws DataException,
			IOException
	{
		int columnCount = rs.getMetaData( ).getFieldCount( );
		IResultObject[] rowDatas = new IResultObject[dataCountOfUnit];
		rowDatas[0] = resultObject;
		int currDataCount = 1;
		int dataIndex = 1;
		
		IResultObject odaObject = null;
		while ( ( odaObject = rs.next( ) ) != null && !stopSign.isStopped( ) )
		{
			Object[] ob = new Object[columnCount];
			for ( int i = 0; i < columnCount; i++ )
				ob[i] = odaObject.getFieldValue( i + 1 );
			IResultObject rowData = resultObjectUtil.newResultObject( ob );
			if ( currDataCount % dataCountOfUnit == 0 )
			{
				int indexOfUnit = currDataCount / dataCountOfUnit - 1;
				if ( indexOfUnit >= 0 )
					outputResultObjects( rowDatas, indexOfUnit + 1, stopSign );