diff -r b8bdbc8f59c7 -r 7d4490026038 featuremgmt/featuremgr/src/serverexe/featmgrserver.cpp --- a/featuremgmt/featuremgr/src/serverexe/featmgrserver.cpp Thu Aug 12 11:53:23 2010 +0100 +++ b/featuremgmt/featuremgr/src/serverexe/featmgrserver.cpp Mon Sep 27 11:59:56 2010 +0100 @@ -632,7 +632,6 @@ BURStatus CFeatMgrServer::Goto_ErrorState( BURStatus aCurrent ) { BURStatus aNewState = EFeatMgrBURState_None; // fail safe: all roads lead to normal state - TInt err( KErrNone ); switch( aCurrent ) { @@ -646,8 +645,8 @@ iPendingRequests = ETrue; iFeaturesReady = EFalse; // re-read the new features; - ClearFeatures(); - TRAP( err, LoadFeaturesL() ); + TRAP_IGNORE(ClearFeaturesL() ); + TRAP_IGNORE(LoadFeaturesL() ); // Stop queuing iPluginsReady = ETrue; // commit the pending change requests @@ -703,19 +702,18 @@ // re-read the new features // Only call the next function if the previous one was // successfully completed. - ClearFeatures(); - TRAP( err, LoadFeaturesL() ); - if( err == KErrNone ) + TRAP(err, ClearFeaturesL() ); + if (err == KErrNone) { - TRAP( err, HandleRestoredNotificationsL() ); + TRAP(err, LoadFeaturesL() ); } - if( err != KErrNone ) + if(err == KErrNone) { - // error condition - aNewState = EFeatMgrBURState_Error; + TRAP(err, HandleRestoredNotificationsL() ); } - else + + if(err == KErrNone) { // Stop queuing iPluginsReady = ETrue; @@ -726,6 +724,11 @@ // Change state machine aNewState = EFeatMgrBURState_RestoreEnded; } + else + { + // error condition + aNewState = EFeatMgrBURState_Error; + } return aNewState; } @@ -784,7 +787,7 @@ /** * This function will clear features from RAM */ -void CFeatMgrServer::ClearFeatures( void ) +void CFeatMgrServer::ClearFeaturesL( void ) { // Delete plugin handlers if ( !iPluginsDeleted ) @@ -807,7 +810,7 @@ if( NULL != iRegistry ) { - iRegistry->ResetFeatures(); + iRegistry->ResetFeaturesL(); } return;