Bug 128359 The logic is not correctly when a filter is added to the table on the layout
Description: The logic is not correctly when a filter is added to the table on the layout Steps to reproduce: Let me give an example. 1. Creat a report, new a datasource and a dataset 2. We consume that the dataset has 10 records(DataResult_A) . We set a filter(Filter_A) in the dataset, and then the 6 records of the dataset(DataResult_B) are gained. 3. Drag the dataset to the layout, and set another filter(Filter_B) on the table. Actual result: The result of Filter_B is based on DataResult_A. Expect result: The result of Filter_B should be based on DataResult_B.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/FilterByRow.java
import org.eclipse.birt.data.engine.odi.IResultObject;
import org.eclipse.birt.data.engine.odi.IResultObjectEvent;
import org.eclipse.birt.data.engine.script.ScriptEvalUtil;
import org.mozilla.javascript.Context;
/**
 * Implementation of IFilter, which will do filtering on row data.
 */
public class FilterByRow implements IResultObjectEvent
{
	protected DataSetRuntime dataSet;
	protected List filters;
	
	protected static Logger logger = Logger.getLogger( FilterByRow.class.getName( ) );
	
	FilterByRow( List filters, DataSetRuntime dataSet ) throws DataException
	{
		assert filters!= null && dataSet != null;
		isLegal( filters );
		this.dataSet = dataSet;
		this.filters = FilterUtil.sortFilters( filters );
		logger.log( Level.FINER, "FilterByRow starts up" );
	}
	
	/**
	 * whether the filter expression is valid. if not, throw the exception. 
	 * @param filters
	 * @throws DataException
	 */
	private void isLegal( List filters ) throws DataException
	{