Bug 384833 - Exception when deleting a project from workspace.
Summary: Exception when deleting a project from workspace.
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-indexer (show other bugs)
Version: Next   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-11 09:40 EDT by Kusuma Haranath Payyavula CLA
Modified: 2020-09-04 15:22 EDT (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 Kusuma Haranath Payyavula CLA 2012-07-11 09:40:38 EDT
Build Identifier: Version: 3.7.1 Build id: M20110909-1335 

Following exception occures when i'm deleting the project. My intial observation is when we delete the project, some how IndexerPreferenceListener is called and it is trying update the "org.eclipse.cdt.core.prefs" file which is normally present in the .settings folder and the file(org.eclipse.cdt.core.prefs) is already deleted from the file system but corresponding resource(IResource) is present in the workspace. There is check for file existence in  ProjectPreferences.load() before updating it but the check is based on the IFile which only checks for resource not the actual file present in the file system. 



org.osgi.service.prefs.BackingStoreException: Exception loading preferences from: /Matrix/.settings/org.eclipse.cdt.core.prefs.
at org.eclipse.core.internal.resources.ProjectPreferences.load(ProjectPreferences.java:466)
at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:387)
at org.eclipse.core.internal.preferences.EclipsePreferences.getChild(EclipsePreferences.java:500)
at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:629)
at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:757)
at org.eclipse.core.resources.ProjectScope.getNode(ProjectScope.java:67)
at org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences.getProjectPreferences(IndexerPreferences.java:307)
at org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences.getPreferences(IndexerPreferences.java:280)
at org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences.get(IndexerPreferences.java:241)
at org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences.getScope(IndexerPreferences.java:99)
at org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences.getPreferences(IndexerPreferences.java:271)
at org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences.get(IndexerPreferences.java:231)
at org.eclipse.cdt.internal.ui.editor.CEditor.updateIndexInclusion(CEditor.java:1524)
at org.eclipse.cdt.internal.ui.editor.CEditor.access$9(CEditor.java:1521)
at org.eclipse.cdt.internal.ui.editor.CEditor$IndexerPreferenceListener.preferenceChange(CEditor.java:1232)
at org.eclipse.core.internal.preferences.EclipsePreferences$3.run(EclipsePreferences.java:841)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.preferences.EclipsePreferences.firePreferenceEvent(EclipsePreferences.java:844)
at org.eclipse.core.internal.preferences.EclipsePreferences.remove(EclipsePreferences.java:956)
at org.eclipse.core.internal.resources.ProjectPreferences.remove(ProjectPreferences.java:500)
at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:969)
at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:980)
at org.eclipse.core.internal.preferences.EclipsePreferences.removeNode(EclipsePreferences.java:980)
at org.eclipse.core.internal.resources.ProjectPreferences.removeNode(ProjectPreferences.java:215)
at org.eclipse.core.internal.resources.ProjectPreferences.deleted(ProjectPreferences.java:107)
at org.eclipse.core.internal.resources.ProjectPreferences.deleted(ProjectPreferences.java:138)
at org.eclipse.core.internal.resources.Resource.deleteResource(Resource.java:846)
at org.eclipse.core.internal.localstore.DeleteVisitor.delete(DeleteVisitor.java:68)
at org.eclipse.core.internal.localstore.DeleteVisitor.visit(DeleteVisitor.java:150)
at org.eclipse.core.internal.localstore.UnifiedTree.accept(UnifiedTree.java:110)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.delete(FileSystemResourceManager.java:349)
at org.eclipse.core.internal.resources.ResourceTree.internalDeleteFolder(ResourceTree.java:352)
at org.eclipse.core.internal.resources.ResourceTree.internalDeleteProject(ResourceTree.java:387)
at org.eclipse.core.internal.resources.ResourceTree.standardDeleteProject(ResourceTree.java:837)
at org.eclipse.core.internal.resources.Resource.unprotectedDelete(Resource.java:1945)
at org.eclipse.core.internal.resources.Resource.delete(Resource.java:780)
at org.eclipse.core.internal.resources.Project.delete(Project.java:344)
at org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange.perform(DeleteResourceChange.java:132)
at org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
at org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
at org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:258)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:306)
at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.executeChange(UIPerformChangeOperation.java:92)
at org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:218)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Reproducible: Always

Steps to Reproduce:
1.Create a simple project with 1 or more source files and build it.
2.After building it, debug the project.
3.Now delete the project. please select the option (Delete the project contents on the disk(cannot be undone)).
4.We can see the exception in the log but not in the UI.