diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java index 6c75983cc1b..987de9f6f1b 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java @@ -897,7 +897,13 @@ public class LanguageSettingsProvidersSerializer { fileStorePrj.delete(true, null); } } else { - project.getWorkspace().validateEdit(new IFile[] { fileStorePrj }, IWorkspace.VALIDATE_PROMPT); + if (fileStorePrj.isReadOnly()) { + IStatus editStatus = project.getWorkspace().validateEdit(new IFile[] { fileStorePrj }, + IWorkspace.VALIDATE_PROMPT); + if (!editStatus.isOK()) { + throw new CoreException(editStatus); + } + } IContainer folder = fileStorePrj.getParent(); if (folder instanceof IFolder && !folder.exists()) { ((IFolder) folder).create(true, true, null);