featuremgmt/featuremgr/src/serverexe/featmgrserver.cpp
changeset 51 7d4490026038
parent 31 ba1c4f4a893f
--- 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;