diff -r 63c982fb92f2 -r b73252188534 metadataengine/server/src/mdsmaintenanceengine.cpp --- a/metadataengine/server/src/mdsmaintenanceengine.cpp Thu Jul 15 19:07:24 2010 +0300 +++ b/metadataengine/server/src/mdsmaintenanceengine.cpp Thu Aug 19 10:20:41 2010 +0300 @@ -16,8 +16,6 @@ */ // INCLUDE FILES -#include - #include "mdsmaintenanceengine.h" #include "mdslogger.h" #include "mdsmanipulationengine.h" @@ -79,6 +77,7 @@ CMdSMaintenanceEngine::~CMdSMaintenanceEngine() { delete iMaintenance; + iMaintenance = NULL; } // ------------------------------------------------ @@ -117,7 +116,17 @@ void CMdSMaintenanceEngine::InstallL( CMdSManipulationEngine& aManipulate, CMdsSchema& aSchema ) { __LOG1( ELogAlways, "Trying to validate MDS DB, error expected if not created(first boot): %d", 0 ); - if ( !(iMaintenance->ValidateL( ) ) ) + + TBool isValid(EFalse); + TRAPD(err, isValid = iMaintenance->ValidateL( )); + + if(err == KErrCorrupt) + { + DeleteDatabase(); + User::Leave( err ); + } + + else if ( !isValid ) { // Pump up priority to load the MDS DB up as fast as possible to // enable client side session connections @@ -272,31 +281,6 @@ User::LeaveIfError( fs.Volume( volumeInfo, EDriveC ) ); MMdsPreferences::InsertL( KCMediaIdKey, MMdsPreferences::EPreferenceValueSet, (TUint32) volumeInfo.iUniqueID ); - - TInt drive( -1 ); - TInt massStorageError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, drive ) ); - if( massStorageError == KErrNone ) - { - TVolumeInfo massStorageVolumeInfo; - massStorageError = fs.Volume( massStorageVolumeInfo, drive ); - if( massStorageError == KErrNone ) - { - const TUint32 massStorageMediaId( massStorageVolumeInfo.iUniqueID ); - massStorageError = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive ); - if( massStorageError == KErrNone ) - { - massStorageError = fs.Volume( massStorageVolumeInfo, drive ); - // Update mass storage media id if the mass storage is not memory card - if( massStorageError == KErrNone && - massStorageVolumeInfo.iUniqueID != massStorageMediaId && - massStorageMediaId != 0 ) - { - MMdsPreferences::InsertL( KMassStorageMediaIdKey, MMdsPreferences::EPreferenceValueSet, - (TUint32) massStorageMediaId ); - } - } - } - } CleanupStack::PopAndDestroy( &fs ); }