psmservices/psmserver/src/engine/psmbackupstorage.cpp
branchRCL_3
changeset 21 ccb4f6b3db21
parent 5 1a73e8f1b64d
child 22 8cb079868133
--- a/psmservices/psmserver/src/engine/psmbackupstorage.cpp	Thu Aug 19 11:09:10 2010 +0300
+++ b/psmservices/psmserver/src/engine/psmbackupstorage.cpp	Tue Aug 31 16:29:05 2010 +0300
@@ -274,7 +274,10 @@
         // reset error value
         trapErr = KErrNone;
         }
-
+    else if ( KErrNoMemory == trapErr )
+        {
+        User::Leave(trapErr);
+        }    
     COMPONENT_TRACE( ( _L( "PSM Server - CPsmBackupStorage::UpdateBackupL() - Config count: %i" ), aConfigArray.Count() ) );
 
     // Loop config array and update storage
@@ -287,9 +290,19 @@
         // Search set element from config and create new if not found
         TXmlEngElement setItem;
         TRAP( trapErr, setItem = FindSetItemL( settings, configInfo.iConfigId ) );
-
-        // If not found, create new
-        if ( KErrNotFound == trapErr && setItem.IsNull() )
+        
+        COMPONENT_TRACE( ( _L( "PSM Server - FindSetItemL() TRAP error -  %d" ), trapErr ) );
+        
+        if ( KErrNoMemory == trapErr && setItem.IsNull() )
+            {
+            User::Leave(trapErr);
+            }
+        else if (KErrNoMemory == trapErr)
+            {
+            setItem.RemoveAttributeL( KPsmSetItemValue );
+            User::Leave(trapErr);
+            }
+        else if ( KErrNotFound == trapErr && setItem.IsNull() )
             {
             // First param indicates that cannot have childs, 
             // second is the owner document and last is tag