backupandrestore/backupengine/src/sbpackagedatatransfer.cpp
branchRCL_3
changeset 6 ef55b168cedb
parent 0 d0791faffa3f
--- a/backupandrestore/backupengine/src/sbpackagedatatransfer.cpp	Wed Apr 14 16:49:36 2010 +0300
+++ b/backupandrestore/backupengine/src/sbpackagedatatransfer.cpp	Tue Apr 27 17:30:23 2010 +0300
@@ -354,12 +354,14 @@
             if(KErrNotSupported == err)
                 {//Non-Removable package, nothing to backup
                 iState.iState = ENone;
+                aLastSection = ETrue;
                 Cleanup();
                 return;
                 }
             else if(KErrNone != err)
                 {
                 iState.iState = ENone;
+                aLastSection = ETrue;
                 Cleanup();
                 User::Leave(err);
                 }
@@ -1413,12 +1415,22 @@
 		// We now no longer return the Z drive, it has been decided that the Z drive will always be the
 		// ROM. Backing up and restoring the ROM drive should not be possible, as what is the point
 		
-		// build package files
+		// build package files        
 		if (iMetaData == NULL)
 			{
-			iMetaData = iSWIBackup.GetMetaDataL(iPackageID, iFiles);
-			iMetaDataSize = iMetaData->Size();
-			BuildPackageFileList();
+			TRAPD( err, iMetaData = iSWIBackup.GetMetaDataL(iPackageID, iFiles) );
+			
+			if( err )
+				{
+				iMetaData = NULL;
+				iMetaDataSize = 0;
+				User::Leave( err );
+				}
+			else
+				{
+				iMetaDataSize = iMetaData->Size();
+				BuildPackageFileList();				
+				}
 			}
 		
 		TDriveList notToBackup = ipDataOwnerManager->Config().ExcludeDriveList();
@@ -1433,6 +1445,7 @@
 			}
 		
 		aDriveList = iDriveList;
+		
 		__LOG1("CPackageDataTransfer::GetDriveListL() - end - SID: 0x%08x", iPackageID.iUid);
 		}