Project: Eclipse_Platform_UI
Bug 418254 [EditorMgmt] [KeyBindings] Ctrl+E and Delete causes IllegalArgumentException
Reported: 2013-09-28 13:45:18 | Status: verified fixed

After updating my Kepler Eclipse 4.3.0 to Service Release 1, pressing Ctrl+E (show list of opened editor) and pressing Delete button causes this problem. It was buggy with 4.3.0 as well but the bug differed a bit. With 4.3.0, when you pressed Delete on an item of Ctrl+E list, it's name was cleared in the list, but it's place in the list kept empty and it was like the item is not deleted from the list, just its name was renamed to empty string in the list. What steps will reproduce the problem? 1. Open as many Java editor as you can, so that small icon appears at the right side of editor tabs. 2. Press Ctrl+E 3. Press Del. on an item -- Error Details -- Date: Sat Sep 28 20:52:10 IRST 2013 Message: Problems occurred when invoking code from plug-in: "org.eclipse.jface". Severity: Error Product: Eclipse 2.0.1.20130919-0803 (org.eclipse.epp.package.jee.product) Plugin: org.eclipse.jface Session Data: eclipse.buildId=4.3.0.M20130911-1000 java.version=1.7.0_21 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product Exception Stack Trace: java.lang.IllegalArgumentException: at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63) at org.eclipse.core.runtime.Assert.isLegal(Assert.java:47) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.findElementsRecursive(ModelServiceImpl.java:286) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.findElements(ModelServiceImpl.java:371) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.findItemForPart(StackRenderer.java:748) at org.eclipse.e4.ui.internal.workbench.renderers.swt.BasicPartList$BasicStackListLabelProvider.getFont(BasicPartList.java:66) at org.eclipse.jface.viewers.ColumnLabelProvider.update(ColumnLabelProvider.java:41) at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152) at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:400) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:485) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2167) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:712) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:650) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:637) at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1508) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1506) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:544) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1465) at org.eclipse.e4.ui.internal.workbench.renderers.swt.AbstractTableInformationControl.removeSelectedItems(AbstractTableInformationControl.java:318) at org.eclipse.e4.ui.internal.workbench.renderers.swt.AbstractTableInformationControl$1.keyPressed(AbstractTableInformationControl.java:138) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:167) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1108) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1827) at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:4975) at org.eclipse.swt.widgets.Table.WM_KEYDOWN(Table.java:6006) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4643) at org.eclipse.swt.widgets.Table.windowProc(Table.java:5919) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) 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:354) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) at org.eclipse.equinox.launcher.Main.run(Main.java:1450)

Files changed in fix:
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java