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
dataIndex = 0;
			}
			rowDatas[dataIndex++] = rowData;
			currDataCount++;
		}
		
		IResultObject[] rowDatas2 = rowDatas;
		int indexOfUnit = currDataCount / dataCountOfUnit - 1;
		if ( currDataCount % dataCountOfUnit != 0 )
		{
			indexOfUnit++;
			int length = currDataCount % dataCountOfUnit;
			rowDatas2 = new IResultObject[length];
			System.arraycopy( rowDatas, 0, rowDatas2, 0, length );
		}
		outputResultObjects( rowDatas2, indexOfUnit + 1, stopSign );
		return currDataCount;
	}
	/**
	 * Output fetched data to file. When sort is needed, the data will be first
	 * sorted before it is exported.
	 * 
	 * @param resultObjects
	 * @param indexOfUnit
	 * @param stopSign
	 * @throws IOException, file writer exception
	 */
	protected abstract void outputResultObjects( IResultObject[] resultObjects,
			int indexOfUnit, StopSign stopSign ) throws IOException;
}