From a4b032301ac91f66175657d9f99d50a70dd00657 Mon Sep 17 00:00:00 2001 From: Vladimir Hirsl Date: Wed, 29 Jun 2005 05:00:42 +0000 Subject: [PATCH] Fix for PR 102058: Per file discovery + Extended Scanner Info + C Project does not work. Fixed a bug with unitial updating of discovered scanner info. --- .../core/scannerconfig/DiscoveredPathManager.java | 2 +- .../scannerconfig/DiscoveredScannerInfoStore.java | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java index a86d0413201..58c9a480b7a 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java @@ -125,7 +125,7 @@ public class DiscoveredPathManager implements IDiscoveredPathManager, IResourceC * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager#updateDiscoveredInfo(org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo, java.util.List) */ public void updateDiscoveredInfo(IDiscoveredPathInfo info, List changedResources) throws CoreException { - if (fDiscoveredMap.get(info.getProject()) != null) { + if (fDiscoveredMap.get(info.getProject()) != info) { IDiscoveredScannerInfoSerializable serializable = info.getSerializable(); if (serializable != null) { IProject project = info.getProject(); diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredScannerInfoStore.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredScannerInfoStore.java index 750d334b13f..a9bad020a1a 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredScannerInfoStore.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredScannerInfoStore.java @@ -105,8 +105,7 @@ public class DiscoveredScannerInfoStore { private Document getDocument(IProject project) throws CoreException { // Get the document - Document document = null; - document = (Document) fDocumentMap.get(project); + Document document = (Document) fDocumentMap.get(project); if (document == null) { try { DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); @@ -154,9 +153,8 @@ public class DiscoveredScannerInfoStore { /** * @param document * @param project - * @throws CoreException */ - private void upgradeDocument(Document document, IProject project) throws CoreException { + private void upgradeDocument(Document document, IProject project) { Element rootElem = (Element) document.getElementsByTagName(SI_ELEM).item(0); //$NON-NLS-1$ ProcessingInstruction pi = document.createProcessingInstruction(SCD_STORE_VERSION, "version=\"2.0\""); //$NON-NLS-1$ document.insertBefore(pi, rootElem); @@ -173,9 +171,8 @@ public class DiscoveredScannerInfoStore { * @param scannerInfo * @param rootElement * @param doc - * @throws CoreException */ - private void saveDiscoveredScannerInfo(IDiscoveredScannerInfoSerializable serializable, Document doc) throws CoreException { + private void saveDiscoveredScannerInfo(IDiscoveredScannerInfoSerializable serializable, Document doc) { NodeList rootList = doc.getElementsByTagName(SI_ELEM); if (rootList.getLength() > 0) { Element rootElem = (Element) rootList.item(0); @@ -295,6 +292,8 @@ public class DiscoveredScannerInfoStore { // project deleted scProjectDeleted(project); } + // remove from cache + fDocumentMap.put(project, null); } return false; }