Bug 153507 Bogus error when bad data set column referenced in group key
Run attached report design. Its group key binding column, "groupkey", is defined to refer to a non-existing data set column: dataSetRow["bad"]. However the actual error seen when previewing the report in BIRT designer: Table (id = 6): + A BIRT exception occurred: Error evaluating Javascript expression. Script engine error: TypeError: valueOf is not a function. Script source: null, line: 0, text: <compiled script>. See next exception for more information. Error evaluating Javascript expression. Script engine error: TypeError: valueOf is not a function. Script source: null, line: 0, text: <compiled script> This error is completely irrelevant to the actual cause of the problem.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/QueryExecutor.java
private void prepareFilter( Context cx, List dataSetFilters,
			List temporaryComputedColumns, List result )
	{
		if ( dataSetFilters != null && !dataSetFilters.isEmpty( ) )
		{
			Iterator it = dataSetFilters.iterator( );
			for ( int i = 0; it.hasNext( ); i++ )
			{
				IFilterDefinition src = (IFilterDefinition) it.next( );
				IBaseExpression expr = src.getExpression( );
				if ( isGroupFilter( src ) )
				{
					ConditionalExpression ce = ( (ConditionalExpression) expr );
					String exprText = ce.getExpression( ).getText( );
					ColumnInfo columnInfo = QueryExecutorUtil.getColInfoFromJSExpr( cx,
							exprText );
					int index = columnInfo.getColumnIndex( );
					String name = columnInfo.getColumnName( );
					if ( name == null && index < 0 )
					{
						
						
						
						temporaryComputedColumns.add( new ComputedColumn( "_{$TEMP_FILTER_"
								+ i + "$}_",
								exprText,
								DataType.ANY_TYPE ) );
						it.remove( );
						result.add( new FilterDefinition( new ConditionalExpression( new ScriptExpression( String.valueOf( "dataSetRow[\"_{$TEMP_FILTER_"
								+ i + "$}_\"]" ) ),