Bug 200495 Exception is thrown out when press space button after pressing Esc button in Parameter dialogue [13]
Description: Exception is thrown out when press space button after pressing Esc button in Parameter dialogue. Build number: 2.2.1.v200708020-0630 Steps to reproduce: 1. New a data set having a parameter. 2. Drag a chart from the Palette to the Layout, in "Select Data" tab, binding to the data set, click "Parameters..." button, use the downward arrow to make the parameter get focus, 3. Press space button, press Esc button, then press space button again. Expected result: No exception. Actual result: Exception is thrown out. Error log: java.lang.IllegalArgumentException: Index out of bounds at org.eclipse.swt.SWT.error(SWT.java:3547) at org.eclipse.swt.SWT.error(SWT.java:3481) at org.eclipse.swt.SWT.error(SWT.java:3452) at org.eclipse.swt.widgets.Widget.error(Widget.java:432) at org.eclipse.swt.widgets.Table.getItem(Table.java:2116) at org.eclipse.birt.chart.reportitem.ui.dialogs.ReportItemParametersDialog$1.handleEvent(ReportItemParametersDialog.java:179) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:975) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:971) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1285) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3772) at org.eclipse.swt.widgets.Table.WM_CHAR(Table.java:5029) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3672) at org.eclipse.swt.widgets.Table.windowProc(Table.java:5025) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4351) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2264) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3291) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at org.eclipse.birt.report.designer.internal.ui.dialogs.BaseDialog.open(BaseDialog.java:109) at org.eclipse.birt.chart.reportitem.ui.ReportDataServiceProvider.invokeEditParameter(ReportDataServiceProvider.java:402) at org.eclipse.birt.chart.reportitem.ui.ReportDataServiceProvider.invoke(ReportDataServiceProvider.java:374) at org.eclipse.birt.chart.ui.swt.wizard.TaskSelectData.widgetSelected(TaskSelectData.java:746) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBase.open(WizardBase.java:102) at org.eclipse.birt.chart.ui.swt.wizard.ChartWizard.open(ChartWizard.java:198) at org.eclipse.birt.chart.reportitem.ui.ChartReportItemBuilderImpl.open(ChartReportItemBuilderImpl.java:183) at org.eclipse.birt.report.designer.internal.ui.processor.ExtenedElementProcessor.editElement(ExtenedElementProcessor.java:64) at org.eclipse.birt.report.designer.internal.ui.views.DefaultNodeProvider.performInsert(DefaultNodeProvider.java:654) at org.eclipse.birt.report.designer.internal.ui.views.DefaultNodeProvider.performRequest(DefaultNodeProvider.java:363) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.birt.report.designer.ui.views.ElementAdapterInvocationHandler.invoke(ElementAdapterInvocationHandler.java:89) at $Proxy0.performRequest(Unknown Source) at org.eclipse.birt.report.designer.ui.actions.BaseInsertMenuAction.insertElement(BaseInsertMenuAction.java:199) at org.eclipse.birt.report.designer.ui.actions.BaseInsertMenuAction.run(BaseInsertMenuAction.java:317) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443) at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
chart/org.eclipse.birt.chart.reportitem.ui/src/org/eclipse/birt/chart/reportitem/ui/dialogs/ReportItemParametersDialog.java
{
	/**
	 * The list kept Property & PropertyDescriptor pair.
	 */
	private HashMap propertiesMap = new HashMap( 7 );
	/**
	 * The Binding properties table.
	 */
	private transient Table table;
	private ArrayList resultList;
	private ArrayList bindingParametersList;
	/**
	 * The static String value serves as key to <code>SetData(key,value)</code>
	 * method.
	 */
	private static final String Binding = "binding"; 
	/**
	 * The TableViewer of the table widget.
	 */
	private TableViewer tableViewer;
	/**
	 * The column list.
	 */
	private static final String[] columnNames = {
			Messages.getString( "ChartDataBindingPage.Lbl.Parameter" ), Messages.getString( "ChartDataBindingPage.Lbl.DataType" ), Messages.getString( "ChartDataBindingPage.Lbl.Value" ) 
	};
	private ExpressionDialogCellEditor expressionCellEditor;
	private static IChoiceSet DataTypes = DesignEngine.getMetaDataDictionary( )
			.getChoiceSet( DesignChoiceConstants.CHOICE_COLUMN_DATA_TYPE );
	private static final String DEFAULT_VALUE_LABEL = Messages.getString( "ChartDataBindingPage.Lbl.DefaultValue" );