Bug 193913 Adding a aggregate with a column binding name that already exists should display a proper message
Build ID: 2.2RC3 Steps To Reproduce: 1.Add table to report 2.Add aggregation to table (Column Binding Name = "TEST") 3.Remove aggregate from table (the binding remains in the list of column bindings for this table) 4.Try to add the same aggregate to table (Column Binding Name = "TEST") This causes the error as shown below: An unexpected internal exception occurred.Please see log for detail. Plug-in Provider:Eclipse.org Plug-in Name:BIRT Designer UI Plug-in ID:org.eclipse.birt.report.designer.ui Version:2.2.0.v20070613 Error Code:Error.GUIException.invokedByUnexpectedException Error Message:Caused by java.lang.NullPointerException. It should rather display a message that the binding already exists or just use the available binding for this aggregate. More information:
UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/ui/views/ElementAdapterInvocationHandler.java
Class returnType = method.getReturnType( );
				if ( returnType.isArray( ) )
				{
					List allResult = new ArrayList( );
					for ( Iterator iter = adapters.iterator( ); iter.hasNext( ); )
					{
						Object result = method.invoke( iter.next( ), args );
						if ( result != null )
							allResult.addAll( Arrays.asList( (Object[]) result ) );
					}
					Object a = java.lang.reflect.Array.newInstance( returnType.getComponentType( ), allResult.size( ) );
					return allResult.toArray( (Object[])a );
				}
				else if ( returnType == Collection.class )
				{
					Collection allResult = new ArrayList( );
					for ( Iterator iter = adapters.iterator( ); iter.hasNext( ); )
					{
						Object result = method.invoke( iter.next( ), args );
						allResult.addAll( (Collection) result );
					}
					return allResult;
				}
				else if ( returnType == Boolean.class )
				{
					boolean returnValue = false;
					for ( Iterator iter = adapters.iterator( ); iter.hasNext( ); )
					{
						Boolean result = (Boolean) method.invoke( iter.next( ),
								args );