diff -r 244d7c5f118e -r 6b1d113cdff3 telephonyserverplugins/common_tsy/commontsy/src/mmpacket/Cmmpacketservicetsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmpacket/Cmmpacketservicetsy.cpp Fri Apr 16 16:12:37 2010 +0300 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmpacket/Cmmpacketservicetsy.cpp Mon May 03 13:37:20 2010 +0300 @@ -2892,7 +2892,7 @@ } //---------------------------------------------------------------------------- -// CMmPacketServiceTsy::CompleteUpdateMbmsMonitorServiceListL +// CMmPacketServiceTsy::CompleteUpdateMbmsMonitorServiceList // Completes update monitored service list request //---------------------------------------------------------------------------- // @@ -2903,14 +2903,16 @@ TFLOGSTRING( "TSY: CMmPacketServiceTsy::CompleteUpdateMbmsMonitorServiceListL." ); TInt result= aResult; + TInt err(KErrNone); // Reset request handle. Returns the deleted request handle const TTsyReqHandle reqHandle( iTsyReqHandleStore->ResetTsyReqHandle( EMultimodePacketServiceUpdateMBMSMonitorServiceList ) ); if( aResult == KErrNone ) { - result = iMBMSMonitoredList->ProcessEntriesL(NULL, iActionType); - CompleteNotifyMbmsServiceAvailabilityChangeL( NULL, aResult ); + TRAP( err, result = iMBMSMonitoredList->ProcessEntriesL( NULL, iActionType ) ); + if ( !err ) + TRAP( err, CompleteNotifyMbmsServiceAvailabilityChangeL( NULL, aResult ) ); } //there were problem managing entries else if( (aResult == KErrMbmsImpreciseServiceEntries) && (aDataPackage != NULL) ) @@ -2921,15 +2923,20 @@ // Check failed entries exists and add succesful entries to main list if( failedMonitorEntries != NULL ) { - iMBMSMonitoredList->ProcessEntriesL( failedMonitorEntries, iActionType ); + TRAP( err, iMBMSMonitoredList->ProcessEntriesL( failedMonitorEntries, iActionType ) ); } else // There was a general error, don't add anything to main list { - iMBMSMonitoredList->ResetTempListL(); + TRAP( err, iMBMSMonitoredList->ResetTempListL() ); } } if( EMultimodePacketServiceReqHandleUnknown != reqHandle ) { + // If there was an error due to a function leaving, complete to the client with that error. + if (err) + { + result = err; + } //complete with error to client CMmPacketServiceTsy::ReqCompleted( reqHandle, result ); }