diff -r f979ecb2b13e -r 42814f902fe6 calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp --- a/calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp Tue Feb 02 10:12:19 2010 +0200 +++ b/calendarui/server/CalenSvr/src/CalenSvrDBManager.cpp Fri Feb 19 22:49:53 2010 +0200 @@ -260,6 +260,8 @@ case EStateDBClosed: iState = EStateOpeningDB; + //Chances of leave due to file corruption or no memory. + TRAPD(err, if( !iGlobalData ) { iGlobalData = CCalenGlobalData::Instance(); @@ -270,7 +272,8 @@ } } iGlobalData->InstanceViewL(); - OpenDatabaseCompletedL(); + ); + OpenDatabaseCompletedL(err); break; default: @@ -359,7 +362,7 @@ // (other items were commented in a header). // ----------------------------------------------------------------------------- // -void CCalenSvrDBManager::OpenDatabaseCompletedL() +void CCalenSvrDBManager::OpenDatabaseCompletedL(TInt aErrorVal) { TRACE_ENTRY_POINT; switch(iState) @@ -368,7 +371,7 @@ { if (iUsers.Count() > 0) { - NotifyUsersL(); + NotifyUsersL(aErrorVal); iState = EStateDBOpen; } else @@ -581,7 +584,7 @@ // (other items were commented in a header). // ----------------------------------------------------------------------------- // -void CCalenSvrDBManager::NotifyUsersL(void) +void CCalenSvrDBManager::NotifyUsersL(TInt aErrorVal) { TRACE_ENTRY_POINT; @@ -595,7 +598,14 @@ for( TInt i(0); i < users.Count(); ++i ) { - users[i]->DatabaseOpened(); + if(aErrorVal != KErrNone) + { + users[i]->HandleError(); + } + else + { + users[i]->DatabaseOpened(); + } } CleanupStack::PopAndDestroy( &users );