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

Bug 351398

Summary: org.eclipse.swt.SWTError: Item not removed
Product: [Eclipse Project] Platform Reporter: Udo Walker <Udo.Walker>
Component: SWTAssignee: Platform-SWT-Inbox <platform-swt-inbox>
Status: CLOSED NOT_ECLIPSE QA Contact:
Severity: major    
Priority: P3 CC: ankur_sharma, curtis.windatt.public
Version: 3.7   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Udo Walker CLA 2011-07-07 04:25:48 EDT
Build Identifier: M20110210-1200

I just used the plug-in editor to add extensions. Sometimes I get the error "org.eclipse.swt.SWTError: Item not removed" and then Eclipse tells me to shutdown Eclipse and restart it. 

I never had this problem under Windows XP on a 32Bit machine. Since some weeks I got a new machine with Windows 7 and 64Bit and since then I have the problem from time to time. 

What I did: I added a command extension with the plug-in editor and clicked in the Package Explorer. Then I got the exception.

I have a 4 CPUs machine with 8GB RAM. I use the latest JDK (1.6.0_26).

Here is my session data:

java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments:  -product org.eclipse.epp.package.rcp.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.rcp.product


Here is the stack trace:

org.eclipse.swt.SWTError: Item not removed
	at org.eclipse.swt.SWT.error(SWT.java:4109)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.SWT.error(SWT.java:3969)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
	at org.eclipse.swt.widgets.CoolBar.destroyItem(CoolBar.java:347)
	at org.eclipse.swt.widgets.CoolItem.destroyWidget(CoolItem.java:202)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:818)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446)
	at org.eclipse.jface.action.ToolBarContributionItem.updateSize(ToolBarContributionItem.java:639)
	at org.eclipse.jface.action.ToolBarContributionItem.update(ToolBarContributionItem.java:595)
	at org.eclipse.jface.action.CoolBarManager.update(CoolBarManager.java:958)
	at org.eclipse.ui.internal.WorkbenchWindow.updateActionBars(WorkbenchWindow.java:3186)
	at org.eclipse.ui.internal.WorkbenchWindow.updateActionSets(WorkbenchWindow.java:3265)
	at org.eclipse.ui.internal.WorkbenchPage$ActionSwitcher.updateActionSets(WorkbenchPage.java:537)
	at org.eclipse.ui.internal.WorkbenchPage$ActionSwitcher.updateActivePart(WorkbenchPage.java:370)
	at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3535)
	at org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:3077)
	at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:279)
	at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98)
	at org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:237)
	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.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)
	at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1424)
	at org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2297)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4205)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2362)
	at org.eclipse.swt.widgets.Button.callWindowProc(Button.java:344)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4253)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3024)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3652)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	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(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:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

Reproducible: Sometimes
Comment 1 Udo Walker CLA 2011-07-07 05:19:54 EDT
I restarted my Eclipse and clicked in the Package explorer and then in the Plug-In-Editor and it crashed again. 

It crashes now always!
Comment 2 Udo Walker CLA 2011-07-07 05:25:01 EDT
The "Extensions" tab of the Plug-in editor crashes always. 

Steps to reproduce (on my machine):

1. Open a plugin.xml file with the Plug-In editor.
2. Select the "Extensions" tab
3. Open the Package Explorer
4. click in the Package Explorer
5. click in the "Extensions" tab of the Plug-Ins editor
6. crash!
Comment 3 Udo Walker CLA 2011-07-07 05:34:05 EDT
I checked the same constellation on a colleague's machine. His Eclipse does not crash at the step I described in my last comment.

The only difference is the JDK. He uses the 1.6.0_18. I use the 1.6.0_26.
Comment 4 Ankur Sharma CLA 2011-07-07 05:45:26 EDT
Can you try with a clean workspace and Eclipse 3.7 (http://eclipse.org/downloads/)?
Comment 5 Udo Walker CLA 2011-07-07 05:58:33 EDT
1. I downloaded Eclipse 3.7 RCP and unpacked it. 
2. I started it with a fresh workspace. 
3. I created a plugin project with the "Hello, World Command" template.
4. I switched to the Extensions tab
5. I clicked in the Package Explorer
6. I clicked in the Extensions tab
7. crash!
Comment 6 Ankur Sharma CLA 2011-07-07 06:09:36 EDT
Thank you for verifying this. I will have to find similar hardware to investigate it.

As it is not blocking a workflow, I am reducing the severity.
Comment 7 Udo Walker CLA 2011-07-07 06:25:28 EDT
It also crashes when I restart Eclipse and click immediatelly after initialization of the workbench in the Extensions tab of the still open Plug-Ins editor.

I have to change the tab to e.g. Extension Points tab and then switch back to the Extensions tab to continue my work with extensions. 

For me it is a real blocker to my workflow as I have to think all the time where I am allowed to click to not restart Eclipse again and again.
Comment 8 Udo Walker CLA 2011-07-08 03:22:45 EDT
I found the problem: I used the extra program "MultiMon TaskBar 2.1" to extend my task bar of Windows to 2 displays. If I stop this program than I do not have the SWT error anymore. 

I close this bug.
Comment 9 Udo Walker CLA 2011-07-08 04:02:35 EDT
I have to mention this:

It is a problem of Windows 7 when you use more than 1 display (I use 2 displays) and you extend the task bar to all of the displays. 

Eclipse crashes when you use

* MultiMon Taskbar 2.1
* NVIDIA nView Desktop Manager 135.60

So I suppose it is a Windows 7 driver problem. Somewhere the resources are not handled correctly when the task bar is bigger.
Comment 10 Curtis Windatt CLA 2011-07-11 09:39:28 EDT
Thank you for updating us with your finidngs.  I'm moving this bug to SWT so they know about the issue with MultiMon / NVidia manager.
Comment 11 Udo Walker CLA 2011-07-15 08:01:54 EDT
There is also a problem with the editor for run configurations for Eclipse applications. On the tab "Plug-ins" if you select "features selected below" you will see a corrupt list of features if you enable on Windows the 2 displays.

I think it is a problem with the table viewer and multiple displays on Windows 7. 
The resources are not handled correctly somewhere in the table control.