Bug 198270 Copying an aggregate does not make a copy, only a reference
In a table with groups or multiple columns, create an aggregate in a footer or a header. Copy the aggregate to another cell in a footer or a header. Make changes to the new aggregate appropriate to its new location. Expected result: The changes appear in only the new copy of the aggregate. Actual result: The changes appear in both aggregates because the new aggregate is not a copy, but a reference to the same aggregate as the original.
xtab/org.eclipse.birt.report.item.crosstab.ui/src/org/eclipse/birt/report/item/crosstab/internal/ui/dialogs/CrosstabBindingDialogHelper.java
{
			expressionProvider = new CrosstabBindingExpressionProvider( this.bindingHolder );
		}	
		UIUtil.setExpressionButtonImage( expressionButton );
		expressionButton.addSelectionListener( new SelectionAdapter( ) {
			public void widgetSelected( SelectionEvent e )
			{
				ExpressionBuilder expression = new ExpressionBuilder( text.getText( ) );
				expression.setExpressionProvier( expressionProvider );
				if ( expression.open( ) == Window.OK )
				{
					if ( expression.getResult( ) != null )
						text.setText( expression.getResult( ) );
				}
			}
		} );
	}
	private List getFunctionArgNames( String function )
	{
		List argList = new ArrayList( );
		try
		{
			IAggregationInfo aggregationInfo = DataUtil.getAggregationFactory( )
					.getAggrInfo( function );
			Iterator argumentListIter = aggregationInfo.getParameters( )
					.iterator( );
			for ( ; argumentListIter.hasNext( ); )
			{
				IParameterInfo argInfo = (IParameterInfo) argumentListIter.next( );
				argList.add( argInfo.getDisplayName( ) );