diff -r 1ddbe54d0645 -r ccb4f6b3db21 psmservices/psmserver/src/engine/psmbackupstorage.cpp --- 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