# HG changeset patch # User timkelly # Date 1285078419 18000 # Node ID 4f1f19efcb66f75956422c985f09ed262eddad60 # Parent d930aa7f442851edd42628e45be4d950cf6aa04f fix 12140. Only scan Raptor to try to repair configs with errors once per IDE session. diff -r d930aa7f4428 -r 4f1f19efcb66 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryUtils.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryUtils.java Mon Sep 20 18:51:12 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryUtils.java Tue Sep 21 09:13:39 2010 -0500 @@ -143,18 +143,25 @@ } @SuppressWarnings("unchecked") + /** + * Adds build config info for a single Raptor build config in an SDK. If the config exists in the map it + * will be overwritten + */ public static void storeConfigQueryDataForSDK(ISymbianSDK sdk, String alias, SBSv2ConfigQueryData configQueryData) { Map configsMap = SDKCacheUtils.getCache().getCachedData(CONFIG_CACHE_KEY, Map.class, 0); String key = (new SBSv2SDKKey(sdk)).toString() + "[" + alias + "]"; if (configsMap == null) { configsMap = new HashMap(); - } else { - if (configsMap.get(key) != null) { - // configQueryData already exist in cache - return; - } } + // Always add the config, b/c if there's an erro in the config we want to be able to update it + // when the IDE rescans at startup checking for Raptor config errors that were saved to the cache +// else { +// if (configsMap.get(key) != null) { +// // configQueryData already exist in cache +// // return; +// } +// } configsMap.put(key, configQueryData); SDKCacheUtils.getCache().putCachedData(CONFIG_CACHE_KEY, (Serializable)configsMap, 0); diff -r d930aa7f4428 -r 4f1f19efcb66 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java Mon Sep 20 18:51:12 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java Tue Sep 21 09:13:39 2010 -0500 @@ -68,7 +68,7 @@ public List getAllBuildConfigurations() { // This really only applies to SBSv1. We never return the full list of configs for SBSv2, only the filtered ones - return sortContexts(sbsv2FilteredContexts); + return getFilteredBuildConfigurations(); } public void clearDataFromBuildCache(){ @@ -122,14 +122,11 @@ } } - - return sortContexts(sbsv2FilteredContexts); } private void initSBSv2BuildContextList(List allowedConfigs) throws SBSv2MinimumVersionException { List filteredAliasList = new ArrayList(); - for (String alias : aliasToMeaningMap.keySet()){ for (String checkedAlias : allowedConfigs){ if (checkedAlias.equalsIgnoreCase(alias)){ @@ -155,20 +152,28 @@ List processedAliasList = new ArrayList(); sbsv2FilteredContexts.clear(); + // First check if we have scanned configs already this IDE session. + // We don't want to scan broken configs over and over + boolean isStartUpScan = !((SymbianSDK)sdk).hasScannedRaptor(); + for (String alias : filteredAliasList) { SBSv2ConfigQueryData configQueryData = SBSv2QueryUtils.getConfigQueryDataForSDK(sdk, alias); - if (configQueryData != null && configQueryData.getConfigurationErrorMessage().trim().length() == 0) { - ISBSv2BuildContext sbsv2Context = new BuildContextSBSv2(sdk, alias, configQueryData); - sbsv2FilteredContexts.add(sbsv2Context); - processedAliasList.add(alias); + if (configQueryData != null) { + if (configQueryData.getConfigurationErrorMessage().trim().length() == 0 || isStartUpScan == false){ + ISBSv2BuildContext sbsv2Context = new BuildContextSBSv2(sdk, alias, configQueryData); + sbsv2FilteredContexts.add(sbsv2Context); + processedAliasList.add(alias); + } } } if (!processedAliasList.isEmpty()) { - filteredAliasList.removeAll(processedAliasList); + filteredAliasList.removeAll(processedAliasList); // Get the configs that had errors } if (!filteredAliasList.isEmpty()) { + // These configs have no data or had errors in them reported by Raptor + String configQueryXML = SBSv2QueryUtils.getConfigQueryXMLforSDK(sdk, filteredAliasList); for (String alias : filteredAliasList) { @@ -189,6 +194,11 @@ } checkWINSCWSupport(); + if (!((SymbianSDK)sdk).hasScannedRaptor()){ + ((SymbianSDK)sdk).setScannedRaptor(true); + SBSv2QueryUtils.flushAllSBSv2Caches(); + } + } private void checkWINSCWSupport() { diff -r d930aa7f4428 -r 4f1f19efcb66 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java Mon Sep 20 18:51:12 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java Tue Sep 21 09:13:39 2010 -0500 @@ -78,6 +78,8 @@ private Map prefixFileMap = new HashMap(); private Set sdkFeatures = new HashSet(); + private boolean hasScannedRaptor; + public SymbianSDK(DeviceType device) { deviceEntry = device; scanSDK(); @@ -628,5 +630,12 @@ return foundOSVersion; } + + public boolean hasScannedRaptor(){ + return hasScannedRaptor; + } + void setScannedRaptor(boolean hasScannedRaptor){ + this.hasScannedRaptor = hasScannedRaptor; + } }