diff -r 2de6635c154b -r 696f5dd11939 syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp --- a/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp Tue May 25 13:36:17 2010 +0300 +++ b/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp Wed Jun 09 10:37:30 2010 +0300 @@ -59,6 +59,7 @@ // ----------------------------------------------------------------------------- void CNSmlDmProvisioningAdapter::ConstructL() { + iLock = EFalse; iSession.OpenL(); FeatureManager::InitializeLibL(); } @@ -217,9 +218,8 @@ TInt isprofilelocked=profile.ProfileLocked(EFalse, EFalse); if (isprofilelocked == 1) { - - profile.Close(); - User::Leave(KErrAccessDenied); + profile.ProfileLocked(ETrue, EFalse); + iLock = ETrue; } } @@ -259,6 +259,14 @@ } // creates profile -> must be done before opening the connection + + + if(iLock) + { + profile.ProfileLocked(ETrue, ETrue); + iLock = EFalse; + } + profile.UpdateL(); RSyncMLConnection connection; @@ -426,7 +434,7 @@ CleanupStack::PopAndDestroy(alertMessage); } - + CleanupStack::PopAndDestroy( &profile ); _DBG_FILE("CNSmlDmProvisioningAdapter::SaveL(): end");