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
for ( int i = 0; i < DATA_TYPE_CHOICES.length; i++ )
			{
				if ( DATA_TYPE_CHOICES[i].getDisplayName( )
						.equals( cmbType.getText( ) ) )
				{
					newBinding.setDataType( DATA_TYPE_CHOICES[i].getName( ) );
					break;
				}
			}
			if ( cmbDataField.isEnabled( ) )
			this.newBinding.setExpression( cmbDataField.getText( ) );
			this.newBinding.setAggregateFunction( getFunctionByDisplayName( cmbFunction.getText( ) ).getName( ) );
			this.newBinding.setFilterExpression( txtFilter.getText( ) );
			this.newBinding.clearAggregateOnList( );
			String aggStr = cmbAggOn.getText( );
			StringTokenizer token = new StringTokenizer( aggStr, "," );
			while ( token.hasMoreTokens( ) )
			{
				String agg = token.nextToken( );
				if ( !agg.equals( ALL ) )
					newBinding.addAggregateOn( agg );
			}
			this.binding = DEUtil.addColumn( getBindingHolder( ),
					newBinding,
					true );
			for ( Iterator iterator = argsMap.keySet( ).iterator( ); iterator.hasNext( ); )
			{
				String arg = (String) iterator.next( );
				AggregationArgument argHandle = StructureFactory.createAggregationArgument( );
				argHandle.setName( ( getArgumentByDisplayName( this.binding.getAggregateFunction( ),