Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 322459

Summary: AIOOBE when trying to synchronize with custom branch
Product: [Technology] EGit Reporter: Benjamin Muskalla <b.muskalla>
Component: UIAssignee: Dariusz Luksza <dariusz.luksza>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: dariusz.luksza, jamesblackburn+eclipse, remy.suen, stefan.lay
Version: 0.9.0   
Target Milestone: 0.12-M1   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Benjamin Muskalla CLA 2010-08-11 22:29:48 EDT
What steps will reproduce the problem?
1. Select project, Team > Synchronize
2. Select a repo and specify your own branch instead of one of the predefined ones (eg. foo)
3. Wizard fails with the exception below.


-- Error Details --
Date: Thu Aug 12 04:26:20 CEST 2010
Message: Unhandled event loop exception
Severity: Error
Product: Eclipse SDK 3.6.0.v201006080911 (org.eclipse.sdk.ide)
Plugin: org.eclipse.ui
Exception Stack Trace:
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(ArrayList.java:324)
at java.util.Collections$UnmodifiableList.get(Collections.java:1154)
at org.eclipse.egit.ui.internal.synchronize.RemoteSelectionCombo.getValue(RemoteSelectionCombo.java:69)
at org.eclipse.egit.ui.internal.synchronize.SelectSynchronizeResourceDialog.buttonPressed(SelectSynchronizeResourceDialog.java:137)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3552)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3171)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.egit.ui.internal.actions.SynchronizeWithActionHandler.execute(SynchronizeWithActionHandler.java:75)
at org.eclipse.egit.ui.internal.actions.RepositoryAction.run(RepositoryAction.java:98)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3552)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3171)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Comment 1 Remy Suen CLA 2010-08-19 21:05:01 EDT
Hit this today. Is the combo control supposed to be read-only?
Comment 2 Stefan Lay CLA 2010-09-28 04:39:21 EDT
As of now the user can only choose branches and tags to synchronize with and the combo box could be read only. As soon as it is possible to synchronize with arbitrary commits the combo box should be editable (like in the new tag dialog).

We should however validate the entry and present an error message if the input does not point to a valid ref.
Comment 3 Dariusz Luksza CLA 2011-02-15 07:48:23 EST
*** Bug 333063 has been marked as a duplicate of this bug. ***
Comment 4 Dariusz Luksza CLA 2011-02-15 07:48:38 EST
Fixed by change:
http://egit.eclipse.org/r/2501
Comment 5 Stefan Lay CLA 2011-02-23 05:19:40 EST
Fixed with b0e96841ed73588bb3023395d0a41ba99deab1a0