diff -r 7e0ecb5b116a -r 3dcb815346df localconnectivityservice/obexserviceman/utils/src/obexutilsmessagehandler.cpp --- a/localconnectivityservice/obexserviceman/utils/src/obexutilsmessagehandler.cpp Thu Jul 15 19:38:28 2010 +0300 +++ b/localconnectivityservice/obexserviceman/utils/src/obexutilsmessagehandler.cpp Thu Aug 19 10:46:39 2010 +0300 @@ -333,19 +333,23 @@ FLOG(_L("[OBEXUTILS]\t RecogniseObjectsL() MIME check failed")); } CleanupStack::PopAndDestroy(); // lsSess + HBufC* buf16 = HBufC::NewLC(mimeType.Length()); buf16->Des().Copy(mimeType); TPtrC mimeType16(buf16->Des()); CleanupStack::PopAndDestroy(); // buf16 - CUpdateMusicCollection* updateMusicCollection = CUpdateMusicCollection::NewL() ; + CUpdateMusicCollection* updateMusicCollection = CUpdateMusicCollection::NewL(); + CleanupStack::PushL(updateMusicCollection); if (updateMusicCollection->isSupported(mimeType16)) { updateMusicCollection->addToCollectionL(aFileName); } + CleanupStack::PopAndDestroy(); // updateMusicCollection aAttachInfo->SetMimeTypeL( mimeType ); + FLOG(_L("[OBEXUTILS]\t RecogniseObjectsL() completed")); } @@ -927,7 +931,7 @@ // TUint setAttMask(0); TUint clearAttMask(0); - User::LeaveIfError(aFile.Open(fsSess,tempFullName,EFileWrite)); + User::LeaveIfError(aFile.Open(fsSess,tempFullName,EFileWrite|EFileShareReadersOrWriters)); User::LeaveIfError(aFile.SetAtt(setAttMask , clearAttMask | KEntryAttHidden)); aFile.Close(); @@ -1000,7 +1004,7 @@ FLOG(_L("[OBEXUTILS]\t TObexUtilsMessageHandler::AddEntryToInboxL() BIO")); RFile file; - User::LeaveIfError(file.Open(fsSess,aFullName,EFileRead)); + User::LeaveIfError(file.Open(fsSess,aFullName,EFileRead|EFileShareReadersOrWriters)); TReceivedData receivedData; receivedData.bytesReceived = fileEntry.iSize; receivedData.recTime = fileEntry.iModified; @@ -1056,37 +1060,40 @@ TFileName& aFullName, CMsvEntry* aParentEntry) { + FLOG(_L("[OBEXUTILS]\t TObexUtilsMessageHandler::UpdateEntryAttachmentL() ")); CDummySessionObserver* sessionObs; CMsvSession* msvSession; CreateMsvSessionLC(sessionObs, msvSession); // 1st, 2nd push - + CMsvEntry* attachEntry = msvSession->GetEntryL(((*aParentEntry)[0]).Id()); CleanupStack::PushL(attachEntry); // 3th push - + CMsvStore* store = attachEntry->EditStoreL(); CleanupStack::PushL( store ); // 4th push - + CObexutilsEntryhandler* entryHandler = CObexutilsEntryhandler::NewL(); CleanupStack::PushL(entryHandler); // 5th push // Note: // Because setFilePath() in CMsvAttachment is not implementated by Symbian yet, // we have to delete the original attachment and add another new one to fix the broken link. - // - + // // remove the old attachment first. // store->AttachmentManagerExtensionsL().RemoveAttachmentL(0); + // Create a new attachment. // + CMsvAttachment* attachInfo = CMsvAttachment::NewL(CMsvAttachment::EMsvLinkedFile); CleanupStack::PushL(attachInfo); // 6th push // Get mime type // RecogniseObjectsL(aFullName, attachInfo); + RFs& fsSess = msvSession->FileSession(); TParse fileNameParser; @@ -1099,10 +1106,11 @@ entryHandler->AddEntryAttachment(aFullName,attachInfo, store); CleanupStack::Pop(attachInfo); // attachInfo, Pass ownership to store CleanupStack::PopAndDestroy(entryHandler); // entryHandler - FinaliseMessageL(aParentEntry, store,fileEntry, fileNameParser); + FinaliseMessageL(aParentEntry, store,fileEntry, fileNameParser); CleanupStack::PopAndDestroy(4); // store, - // attachEntry, msvSession, sessionObs + // attachEntry, msvSession, sessionObs FLOG(_L("[OBEXUTILS]\t TObexUtilsMessageHandler::UpdateEntryAttachmentL() completed ")); + }