Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 79132 - Can't make Eclipse forget about removed plug-ins
Summary: Can't make Eclipse forget about removed plug-ins
Status: RESOLVED DUPLICATE of bug 75590
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 3.0.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-Resources-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-20 13:31 EST by Bob Foster CLA
Modified: 2004-11-22 14:52 EST (History)
2 users (show)

See Also:


Attachments
Runtime configuration with remembered (out of sync) state (94.21 KB, image/jpeg)
2004-11-22 13:54 EST, Bob Foster CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bob Foster CLA 2004-11-20 13:31:28 EST
Deleting the configuration folder, launching with the -clean option, nothing
seems to make Eclipse forget that it has once seen plugins. A launch with
-clean, for example, produces the following log messages:


!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.60
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\com.sysdeo.eclipse.tomcat_3.0.0\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.622
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.622
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.deployer.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.622
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.deployer.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.638
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.638
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.638
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.j2ee.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.638
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.test.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.653
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.test.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.653
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.653
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.ws.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.685
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.jdt.ws.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.685
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.launcher.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.685
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.launcher.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.685
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.packaging.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.716
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.packaging.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.716
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.ui_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.731
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.assist_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.731
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.core_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.731
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.run_1.3.30\plugin.xml.

!ENTRY org.eclipse.core.resources 4 271 Nov 20, 2004 10:27:02.747
!MESSAGE File not found:
D:\eclipse3.0.1\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.ui_1.3.30\plugin.xml.

Why? Who is looking for these files? How are they being remembered?
Comment 1 Bob Foster CLA 2004-11-20 13:34:03 EST
This causes other problems. For example, Runtime-workbench configurations can no
longer be opened. This is what the .log file shows:

!ENTRY org.eclipse.core.runtime 4 2 Nov 20, 2004 10:32:32.372
!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.core.runtime".
!STACK 0
java.lang.NullPointerException
	at java.util.TreeMap.compare(Unknown Source)
	at java.util.TreeMap.getEntry(Unknown Source)
	at java.util.TreeMap.containsKey(Unknown Source)
	at java.util.TreeSet.contains(Unknown Source)
	at
org.eclipse.pde.internal.ui.launcher.AdvancedLauncherTab.initWorkspacePluginsState(AdvancedLauncherTab.java:412)
	at
org.eclipse.pde.internal.ui.launcher.AdvancedLauncherTab.initializeFrom(AdvancedLauncherTab.java:470)
	at
org.eclipse.pde.internal.ui.launcher.WorkbenchLauncherTabGroup$1.run(WorkbenchLauncherTabGroup.java:73)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.pde.internal.ui.launcher.WorkbenchLauncherTabGroup.initializeFrom(WorkbenchLauncherTabGroup.java:55)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.displayInstanceTabs(LaunchConfigurationTabGroupViewer.java:540)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer$5.run(LaunchConfigurationTabGroupViewer.java:473)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.inputChanged(LaunchConfigurationTabGroupViewer.java:490)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer.setInput(LaunchConfigurationTabGroupViewer.java:454)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.handleLaunchConfigurationSelectionChanged(LaunchConfigurationsDialog.java:775)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog$3.selectionChanged(LaunchConfigurationsDialog.java:585)
	at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:159)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616)
	at org.eclipse.core.runtime.Platform.run(Platform.java:747)
	at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157)
	at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1394)
	at
org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:693)
	at
org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:718)
	at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:180)
	at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:175)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:324)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:668)
	at org.eclipse.jface.window.Window.open(Window.java:648)
	at
org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog.open(LaunchConfigurationsDialog.java:419)
	at org.eclipse.debug.ui.DebugUITools$1.run(DebugUITools.java:381)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.java:385)
	at
org.eclipse.debug.ui.DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUITools.java:327)
	at
org.eclipse.debug.ui.actions.OpenLaunchDialogAction.run(OpenLaunchDialogAction.java:80)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
	at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
	at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
	at
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
	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.core.launcher.Main.basicRun(Main.java:185)
	at org.eclipse.core.launcher.Main.run(Main.java:704)
	at org.eclipse.core.launcher.Main.main(Main.java:688)
Comment 2 Bob Foster CLA 2004-11-20 13:34:50 EST
Of course, I can't run a Runtime-configuration, either. So I can't debug my
plug-ins.
Comment 3 John Arthorne CLA 2004-11-22 11:09:27 EST
Mysterious indeed.  These messages are coming from the resources plugin, which
means those files were in your workspace at some point in time (likely you
imported them as binary linked plugins into your workspace). Some plugin is
trying to get at either the contents or encoding of these files
(IFile.getContents and IFile.getEncoding are the two API methods that produce
such a message). The problem is, we can't see from the message what plugin is
trying to access these files.  Adding Wassim to the list - PDE is likely culprit
since it is trying to read the plugin.xml files.  Perhaps the manifest builder?
Comment 4 Wassim Melhem CLA 2004-11-22 11:47:21 EST
Unlikely that these messages are coming from the manifest builder.  We don't 
keep workspace state from one invocation of the workbench to the next, so we 
don't remember plugins that no longer exist.

As for the NPE in comment 1, it has been fixed in the 3.1 cycle some time ago.
Comment 5 Bob Foster CLA 2004-11-22 13:54:40 EST
Created attachment 16050 [details]
Runtime configuration with remembered (out of sync) state
Comment 6 Bob Foster CLA 2004-11-22 13:55:27 EST
Are you sure? State is patently being kept. Or how do you account for this
screenshot? This kind of problem only shows up in a runtime configuration,
making it pretty certain that PDE is keeping the state.
Comment 7 Wassim Melhem CLA 2004-11-22 14:03:14 EST
No, no workbench state is saved.  The "out of sync" label is misleading here.  
We have a separate bug report to track it to make it less generic.  

In this case,  I suspect the problem here might be that you have plugins that 
were imported into your workspace *with* links, but the plugins on disk that 
they are linked to no longer exist.  If this is the case, then deleted those 
binary linked projects from your workspace and things will return to normal.
Comment 8 Bob Foster CLA 2004-11-22 14:30:59 EST
You're right. I didn't notice this because I didn't _intend_ to import these
plugins, and as we all know, what you don't believe is there is invisible. ;-}

When installing a new Eclipse version, it's my practice to import all workspace
plugins, then remove my own plugin from the list. Unfortunately, by the time I
got around to doing this for 3.0.1, I had already installed a number of other
plugins to diagnose a user-reported conflict. I created a runtime configuration
with those plugins in the workspace, then later removed the plugins to which
they were linked.

Also as you predicted, when I deleted the offending plugins from the workspace,
the runtime configuration returned to normal, no more NPE, etc.

Two things made it hard to see and fix this by myself: 

1) There were no error indications in the explorer view to let me know that
certain workspace plugins had missing links.

2) The label "(out of sync)" is excessively cryptic and does not lead a user
without wassimm's insight to the source of the problem. If a plugin has a
problem, the label should at least indicate _what_ plugin has the problem. Some
note about what the problem is, like "missing link", wouldn't hurt, either.
Comment 9 John Arthorne CLA 2004-11-22 14:52:59 EST
Marking as a dup of another PDE bug that raises the issue of the cryptic "out of
sync" message that only Wassim can interpret :)

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