From 7cbf02c426a04ad99fef10d9b694385fbdd38a65 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Tue, 18 Jan 2005 20:14:39 +0000 Subject: [PATCH] fixed bug #82705 --- core/org.eclipse.cdt.core/ChangeLog | 5 +++++ .../org/eclipse/cdt/internal/core/CDescriptor.java | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 7ebfe66a8c7..50b0a8a6e28 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,8 @@ +2005-01-18 David Inglis + Fixed bug #82705 + + * src/org/eclipse/cdt/internal/core/CDescriptor.java + 2005-01-11 David Inglis Fixed NPE bug #82572 diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CDescriptor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CDescriptor.java index 402b1353c52..ee2df412985 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CDescriptor.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CDescriptor.java @@ -39,8 +39,10 @@ import org.eclipse.cdt.core.ICOwnerInfo; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceRuleFactory; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspaceRunnable; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtension; @@ -51,6 +53,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.ISchedulingRule; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; @@ -306,6 +309,14 @@ public class CDescriptor implements ICDescriptor { } void save() throws CoreException { + IResourceRuleFactory ruleFactory= ResourcesPlugin.getWorkspace().getRuleFactory(); + ISchedulingRule rule; + IFile rscFile = getFile(); + if (rscFile.exists()) { + rule = ruleFactory.modifyRule(rscFile); + } else { + rule = ruleFactory.createRule(rscFile); + } fManager.getWorkspace().run(new IWorkspaceRunnable() { public void run(IProgressMonitor mon) throws CoreException { @@ -348,7 +359,7 @@ public class CDescriptor implements ICDescriptor { } fUpdating = false; } - }, fProject, IWorkspace.AVOID_UPDATE, null); + }, rule, IWorkspace.AVOID_UPDATE, null); } boolean isUpdating() {