From cb8e2c688727e731a53242537599e9ef54978920 Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Fri, 2 Oct 2020 01:12:19 -0400 Subject: [PATCH] Bug 567536 - In a Perforce workspace, untracked language.settings.xml always get prompted to get latest IWorkspace.validateEdit should only be called if the file is read only. Quoting IWorkspace.validateEdit javadoc "A client (such as an editor) should perform a validateEdit on a file whenever it finds itself in the following position: (a) the file is marked read-only, and (b) the client believes it likely (not necessarily certain) that it will modify the file's contents at some point." Change-Id: Id73d3629f9ce276b931ed586a6dbf19199d56831 Signed-off-by: Marc-Andre Laperle --- .../providers/LanguageSettingsProvidersSerializer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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);