diff -r 63c982fb92f2 -r b73252188534 harvester/client/src/harvesterrequestactive.cpp --- a/harvester/client/src/harvesterrequestactive.cpp Thu Jul 15 19:07:24 2010 +0300 +++ b/harvester/client/src/harvesterrequestactive.cpp Thu Aug 19 10:20:41 2010 +0300 @@ -32,14 +32,11 @@ if( IsActive() ) { Cancel(); - if( iObserver ) - { - iObserver->HarvestingComplete( iUri, KErrCancel ); - } - iRequestCompleted = ETrue; } + iRequestCompleted = ETrue; delete iAlbumIds; + iAlbumIds = NULL; } // --------------------------------------------------------------------------- @@ -79,10 +76,16 @@ // void CHarvesterRequestActive::RunL() { + if( iStatus.Int() == KErrCancel ) + { + return; + } + if( iStatus.Int() && iObserver ) { iObserver->HarvestingComplete( iUri, iStatus.Int() ); } + iRequestCompleted = ETrue; if( iRequestQueue ) { @@ -104,7 +107,8 @@ if( iObserver ) { iObserver->HarvestingComplete( iUri, aError ); - } + } + iRequestCompleted = ETrue; return KErrNone; } @@ -116,6 +120,7 @@ void CHarvesterRequestActive::DoCancel() { iCancelled = ETrue; + iObserver = NULL; } // ---------------------------------------------------------------------------