Bug 167085 - [QuickAccess] Quick Access dialog shows null and duplicate entries
Summary: [QuickAccess] Quick Access dialog shows null and duplicate entries
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.3 M4   Edit
Assignee: Aaron Ferguson CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
: 167720 167721 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-12-07 08:33 EST by Markus Keller CLA
Modified: 2007-06-05 16:13 EDT (History)
2 users (show)

See Also:


Attachments
Screenshot (61.55 KB, image/png)
2006-12-08 04:11 EST, Markus Keller CLA
no flags Details
patch (4.87 KB, patch)
2006-12-08 16:58 EST, Aaron Ferguson CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2006-12-07 08:33:34 EST
I20061205-1200

The Quick Access (Ctrl+E) dialog shows null entries under "Editors" and duplicate entries in Previous Choices, see screenshot.

If I select one of the entries under "Editors" or "Views", I get the exception below and the editor does not change (this is for the "null - ..." as well as for the normal entries).

org.eclipse.core.runtime.AssertionFailedException: null argument:
	at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:84)
	at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:72)
	at org.eclipse.ui.internal.incubator.CtrlEAction$QuickAccessPopup.storeDialog(CtrlEAction.java:254)
	at org.eclipse.ui.internal.incubator.CtrlEAction$QuickAccessPopup.handleElementSelected(CtrlEAction.java:273)
	at org.eclipse.ui.internal.incubator.FilteringInfoPopup$4.mouseUp(FilteringInfoPopup.java:224)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:137)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:929)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3465)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3079)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1945)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1909)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:425)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
	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.internal.app.EclipseAppContainer.callMethod(EclipseAppContainer.java:522)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:147)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:170)
	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.core.launcher.Main.invokeFramework(Main.java:339)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:283)
	at org.eclipse.core.launcher.Main.run(Main.java:984)
	at org.eclipse.core.launcher.Main.main(Main.java:959)
Comment 1 Boris Bokowski CLA 2006-12-07 13:31:54 EST
Do you still have the screenshot, or reproducible steps?
Comment 2 Markus Keller CLA 2006-12-08 04:11:19 EST
Created attachment 55298 [details]
Screenshot

Oops, sorry. Bugzilla was so sloooow that I forgot to attach when it became responsive again.

Unfortunately, I don't have reproducible steps. There were no other log entries since I started that session.
Comment 3 Boris Bokowski CLA 2006-12-08 08:36:40 EST
Aaron, can you try to reproduce this?
Comment 4 Aaron Ferguson CLA 2006-12-08 16:58:15 EST
Created attachment 55342 [details]
patch

This patch removes caching of Editors and Actions from Quick Access to fix the described bug.

AF
Comment 5 Aaron Ferguson CLA 2006-12-12 16:45:07 EST
*** Bug 167720 has been marked as a duplicate of this bug. ***
Comment 6 Aaron Ferguson CLA 2006-12-12 16:46:07 EST
*** Bug 167721 has been marked as a duplicate of this bug. ***
Comment 7 Aaron Ferguson CLA 2006-12-12 17:28:56 EST
I think the above patch fixes some of the problems, but I'm running into a couple of cases where it still happens.  I'm pretty sure it is because we are creating the providers the first time Ctrl+E is executed and then reusing them.  I've tried some testing where they are created new upon every execution of Ctrl+E and it seems to solve the problems completely.  I'm going to investigate this a bit more.

AF
Comment 8 Boris Bokowski CLA 2006-12-12 17:33:48 EST
Yes, looking at the code it seems that idToElement.clear() should be called from getElements().
Comment 9 Boris Bokowski CLA 2006-12-12 23:21:46 EST
Released the patch (added calls to clear()).
Comment 10 Boris Bokowski CLA 2006-12-14 16:39:04 EST
Verified on Windows using I20061213-0800.