From ad7f1733377da9fceab6e37cd62fa232fd804429 Mon Sep 17 00:00:00 2001 From: Mikhail Sennikovsky Date: Thu, 14 Jun 2007 11:27:21 +0000 Subject: [PATCH] Backward compatibility fix: saveBuildInfo should NOT fail in case the root rule can not be obtained --- .../core/ManagedBuildManager.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java index fd9b03ef389..cc764345559 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java @@ -1392,12 +1392,30 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI return true; } - public static boolean saveBuildInfo(IProject project, boolean force) { + public static boolean saveBuildInfo(final IProject project, final boolean force) { try { return updateBuildInfo(project, force); } catch (CoreException e) { ManagedBuilderCorePlugin.log(e); return false; + } catch (IllegalArgumentException e){ + //can not acquire the root rule + Job j = new Job("save build info job"){ + + protected IStatus run(IProgressMonitor monitor) { + try { + updateBuildInfo(project, force); + } catch (CoreException e) { + return e.getStatus(); + } + return Status.OK_STATUS; + } + + }; + j.setRule(ResourcesPlugin.getWorkspace().getRoot()); + j.setSystem(true); + j.schedule(); + return true; } }