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.tests/test/org/eclipse/birt/data/engine/binding/DataSetCacheTest.java
private IResultIterator getResultIterator2( DataEngine myDataEngine2 )
			throws BirtException
	{
		ScriptDataSourceDesign odaDataSource = new ScriptDataSourceDesign( "JUST as place folder" );
		ScriptDataSetDesign odaDataSet = new ScriptDataSetDesign( "ScriptedDataSet" );
		odaDataSet.setDataSource( odaDataSource.getName( ) );
		odaDataSet.setOpenScript( "count=100;" );
		odaDataSet.setFetchScript( "if (count==0) "
				+ "{" + "return false; " + "} " + "else " + "{ "
				+ "dataSetRow.NUM=count; " + "dataSetRow.SQUARE=count*count; "
				+ "dataSetRow.STR=\"row#\" + count; " + "--count; "
				+ "return true; " + "}" );
		
		String[] scriptColumnNames = new String[]{
				"NUM", "SQUARE", "STR"
		};
		int[] scriptColumnTypes = new int[]{
				DataType.INTEGER_TYPE,
				DataType.DOUBLE_TYPE,
				DataType.STRING_TYPE
		};
		for ( int i = 0; i < scriptColumnNames.length; i++ )
		{
			ColumnDefinition colInfo = new ColumnDefinition( scriptColumnNames[i] );
			colInfo.setDataType( scriptColumnTypes[i] );
			odaDataSet.getResultSetHints( ).add( colInfo );
		}
		QueryDefinition queryDefinition = this.newReportQuery( );
		queryDefinition.setDataSetName( odaDataSet.getName( ) );
		bindingNameRow = new String[3];