telephonyserverplugins/common_tsy/commontsy/src/mmpacket/Cmmpacketservicetsy.cpp
changeset 23 6b1d113cdff3
parent 20 244d7c5f118e
child 24 6638e7f4bd8f
child 26 8767c6acf334
child 44 8b72faa1200f
--- 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 );
 		 }