} finally { if ( null != query ) {  for(int iNum = 0; iNum < filterExpressions.length; iNum++) { query.getFilters( ).remove( filterExpressions[ iNum ] ); } filterExpressions = null; }
	private IExtractionResults extractByInstanceID( InstanceID iid )			throws EngineException	{		DataID dataId = iid.getDataID( );		DataSetID dataSetId = dataId.getDataSetID( );		DataEngine dataEngine = executionContext.getDataEngine( )				.getDataEngine( );		Scriptable scope = executionContext.getSharedScope( );		IResultIterator dataIter = null;		try		{			dataIter = getResultSet( dataEngine, dataSetId, scope );		}		catch ( BirtException e )		{			// TODO Auto-generated catch block			e.printStackTrace( );			throw new EngineException( "Export date by Instance Id failed!", e );		}		IResultMetaData metaData = getMetaDateByInstanceID( iid );		if ( null != metaData )		{			return new ExtractionResults( dataIter,					metaData,					this.selectedColumns );		}		else		{			return null;		}	}