diff -r e6e896426eac -r ad0f53516d84 omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp --- a/omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp Tue Feb 02 00:02:49 2010 +0000 +++ b/omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp Fri Feb 19 22:40:37 2010 +0200 @@ -1910,12 +1910,61 @@ { iWriteStream.Close(); User::RequestComplete( iCallerStatus, aError ); - } - else if(iLastOperation == ENSmlRetrieveOp) - { - User::RequestComplete( iCallerStatus, aError ); - } - } + } + else if (iLastOperation == ENSMLUpdateExportOp) + { + iWriteStream.Close(); + delete iMergeItem; + iMergeItem = NULL; + User::RequestComplete( iCallerStatus, aError ); + } + else if (iLastOperation == ENSMLUpdateImportOp) + { + if(iBatchMode) + { + iResultArray->Append( aError ); + } + delete iBuf; + iBuf = NULL; + iReadStream.Close(); + iIndex++; + if(iIndex == iContactsBufferItemList.Count() ) + { + ResetBuffer(); + User::RequestComplete( iCallerStatus, aError ); + } + else + { + _DBG_FILE("VPbkSingleContactOperationFailed, Continuing to complete the Batch Operation"); + ExecuteBufferL(); + } + } + else if(iLastOperation == ENSmlRetrieveOp) + { + iRetrieveCount--; + if(iBatchMode) + { + iResultArray->AppendL( aError ); + } + iIndex++; + if(iIndex == iContactsBufferItemList.Count() ) + { + ResetBuffer(); + User::RequestComplete( iCallerStatus, aError ); + } + else if(!iRetrieveCount) + { + _DBG_FILE("VPbkSingleContactOperationFailed, Continuing to complete the Batch Operation"); + ExecuteBufferL(); + } + } + else + { + _DBG_FILE("VPbkSingleContactOperationFailed, No Matching LastOperation Completing the Operation"); + User::RequestComplete( iCallerStatus, aError ); + } + _DBG_FILE("CNSmlContactsDataStore::VPbkSingleContactOperationFailed(): end"); + } // --------------------------------------------------------------------------- // CNSmlContactsDataStore::VPbkSingleContactOperationFailed // ---------------------------------------------------------------------------