Intland's free requirements, development and test management hosting.
This server hosts 100.000+ users on the cloud!
NullPointerException attempting to "Finish" Synchronize wizard#12176/v4
more
Tags:  not added yet

NullPointerException attempting to "Finish" Synchronize wizard[BUG-12176]

Tracker: Bugs Priority: NormalNormal Status: Closed
Submitted by: seanare Jun 30, 2010 04:54 Modified by: hgeclipse Nov 06, 2010 18:15 Assigned to: hgeclipse Jun 30, 2010 04:54
Category: Core Severity: Critical Resolution: Fixed
Release: -- Detected: --
Relations
Loading...
Description
When attempting to use the Synchronize wizard to start the process of using Mercurial Eclipse, the "Finish" button has no perceivable effect. In the eclipse log, we find the following NPE:
!ENTRY org.eclipse.ui 4 0 2010-06-30 15:46:50.287
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
                at com.vectrace.MercurialEclipse.wizards.CloneRepoWizard.canFinish(CloneRepoWizard.java:88)
                at org.eclipse.team.ui.synchronize.ParticipantSynchronizeWizard.canFinish(ParticipantSynchronizeWizard.java:106)
                at org.eclipse.team.internal.ui.wizards.GlobalSynchronizeWizard.performFinish(GlobalSynchronizeWizard.java:82)
                at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811)
                at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430)
                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:1053)
                at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
                at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
                at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
                at org.eclipse.jface.window.Window.open(Window.java:801)
                at org.eclipse.team.internal.ui.synchronize.actions.SynchronizePageDropDownAction$1.run(SynchronizePageDropDownAction.java:40)
                at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
                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:1053)
                at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
                at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
                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)
                at org.eclipse.equinox.launcher.Main.main(Main.java:1383)

The repository in question was created using TortoiseHg. We currently predominantly use Subversion, so I created the repo by:

  • Creating an empty repo at the workspace level using TortoiseHg
  • Checked out the source code from Subversion into the same directory (using TortoiseSVN if it matters)
  • Committing to the new Hg repository
  • Cloning this repo to a second Hg repository
  • Using mq to add (and apply) a series of patches in the second Hg repository

I then opened eclipse, imported the projects, and then once eclipse had settled down, used the "Synchronize" button on the "Synchronize" view to open the wizard, selected "Mercurial" and pressed "Finish" (the "Next" button was not enabled). As described above, the button press did not appear to respond, and the NPE was recorded in the eclipse log. Pressing the Finish button multiple times was rewarded with multiples of the same NPE :-)

If it matters, Subversive is not installed (the second repo doesn't have a subversion presence at all in the workspace).

This is a reasonably large repository (over 53k files in 29k+ folders totalling 392 MB), since this is a commercial product, I cannot supply the repository (which would of course be larger, this does not include the .hg directory).

I attempted to reproduce the problem on a smaller repository with only two projects and some trivial dummy/test data following much the same process (sans svn), but everything worked beautifully.

Hopefully the stack trace is enough to point to the likely problem.

Environment:

Version
MercurialEclipse1.6.0.v201005111545
Windows Binaries for Mercurial1.4.3.v201005111545
Eclipse3.6.0 (build id I20100608-0911)
TortoiseHg1.0 (Mercurial 1.5, Python 2.6.4, PyGTK-2.16.0, GTK 2.18.7)
Operating SystemWindows XP SP2
Details
Comments & Attachments (2)
Associations (0)
Children (0)
References (0)
SCM Commits (0)
All (0)

with status and due   Customize
Nothing found to display.