# HG changeset patch # User stechong # Date 1283204351 18000 # Node ID 5c9cbbdfb5c226ed3b5bbe2f2a555edd1dbf7db5 # Parent a3a658718ab368b2351000aed8a730871579d7b9 Fix for Bug 11934 [C3 SDK - If devices.xml has a drive a rescan will created a second instance]. diff -r a3a658718ab3 -r 5c9cbbdfb5c2 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/AbstractSDKManager.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/AbstractSDKManager.java Mon Aug 30 14:54:10 2010 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/AbstractSDKManager.java Mon Aug 30 16:39:11 2010 -0500 @@ -318,6 +318,9 @@ sdk = SymbianSDKFactory.createInstance(id, entry.getEpocRoot(), osVersion); + if (isInSDKList(sdk)) { + continue; + } ((SymbianSDK)sdk).setEnabled(entry.isEnabled()); synchronized (sdkList) { sdkList.add(sdk); @@ -348,6 +351,13 @@ } /** + * Check whether an SDK already exist in SDK list. + * @param sdk - SDK to be checked + * @return true if SDK already exist in SDK list, false otherwise + */ + abstract protected boolean isInSDKList(ISymbianSDK sdk); + + /** * Tell whether EPOCROOT can be changed for a given ISymbianSDK * @return flag */ diff -r a3a658718ab3 -r 5c9cbbdfb5c2 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java Mon Aug 30 14:54:10 2010 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java Mon Aug 30 16:39:11 2010 -0500 @@ -97,6 +97,9 @@ for (Iterator iter = devices.iterator(); iter.hasNext();) { SymbianSDK sdk = new SymbianSDK((DeviceType) iter.next()); sdk.addSupportedFeature(ISymbianSDKFeatures.IS_FROM_DEVICES_XML); + if (isInSDKList(sdk)) { + continue; + } sdkList.add(sdk); } } @@ -484,7 +487,8 @@ } } - private boolean isInSDKList(ISymbianSDK sdk) { + @Override + protected boolean isInSDKList(ISymbianSDK sdk) { for (ISymbianSDK entry : sdkList) { if (entry.getEPOCROOT().equalsIgnoreCase(sdk.getEPOCROOT())) { return true; diff -r a3a658718ab3 -r 5c9cbbdfb5c2 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManagerRaptorOnly.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManagerRaptorOnly.java Mon Aug 30 14:54:10 2010 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManagerRaptorOnly.java Mon Aug 30 16:39:11 2010 -0500 @@ -135,7 +135,17 @@ public void updateSDK(ISymbianSDK sdkId) { updateCarbideSDKCache(); } - + + @Override + protected boolean isInSDKList(ISymbianSDK sdk) { + for (ISymbianSDK entry : sdkList) { + if (entry.getEPOCROOT().equalsIgnoreCase(sdk.getEPOCROOT())) { + return true; + } + } + return false; + } + @Override protected boolean isEPOCRootFixed() { return false;