Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 329905 - [ui] Opening of the wizard should check if the operation has completed
Summary: [ui] Opening of the wizard should check if the operation has completed
Status: CLOSED DUPLICATE of bug 315790
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: 4.0   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 3.7 M5   Edit
Assignee: Susan McCourt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-10 09:12 EST by Olivier Thomann CLA
Modified: 2011-01-11 18:42 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Olivier Thomann CLA 2010-11-10 09:12:27 EST
Using:
eclipse.buildId=I20101029-1118 (4.1 I-build)
java.version=1.6.0_23-ea
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_CA
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -console

I got this exception when I cancelled an update operation.

Steps to reproduce:
1) Click on Check for updates
2) Go to the progress view and click on the red square to terminate the update operation.

!ENTRY org.eclipse.e4.ui.workbench 4 0 2010-11-10 09:08:36.827
!MESSAGE Internal Error
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.IllegalArgumentException: Cannot create an update wizard on an unresolved operation)
	at org.eclipse.swt.SWT.error(SWT.java:4091)
	at org.eclipse.swt.SWT.error(SWT.java:4006)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4059)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3678)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$6.run(PartRenderingEngine.java:783)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:692)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:104)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:542)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:524)
	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:621)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:576)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1409)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1385)
Caused by: java.lang.IllegalArgumentException: Cannot create an update wizard on an unresolved operation
	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63)
	at org.eclipse.equinox.internal.p2.ui.dialogs.UpdateWizard.<init>(UpdateWizard.java:76)
	at org.eclipse.equinox.p2.ui.ProvisioningUI.openUpdateWizard(ProvisioningUI.java:227)
	at org.eclipse.equinox.internal.p2.ui.sdk.UpdateHandler.doExecute(UpdateHandler.java:42)
	at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler$3$1.run(PreloadingRepositoryHandler.java:101)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 24 more
Comment 1 Pascal Rapicault CLA 2010-11-21 23:08:36 EST
I have looked a bit at that and I don't see how this can be happening since cancelling should not cause the Updater#doExecute method to be called. 
Susan, do you have an idea?
Comment 2 Susan McCourt CLA 2010-12-15 15:35:26 EST
does this happen easily/reliably?
It's weird because the wizard was showing, yet we are still in the constructor.  And we are running in an async (not sure why).
Olivier, do you know if this happens only on 4.1 builds or also on 3.7?
Comment 3 Susan McCourt CLA 2010-12-15 15:38:19 EST
never mind, I see now that you are talking about the progress view red button, not the wizard red button.
So the issue here is that if the operation status is cancelled, we should ignore.  I get it now.
Comment 4 Susan McCourt CLA 2011-01-11 18:42:53 EST
fixed in the duplicate bug.

*** This bug has been marked as a duplicate of bug 315790 ***