diff -r e53284de66c2 -r 798ee5f1972c videoscheduler/SchedulerServer/src/CCseScheduleDB.cpp --- a/videoscheduler/SchedulerServer/src/CCseScheduleDB.cpp Thu Jul 15 19:48:39 2010 +0300 +++ b/videoscheduler/SchedulerServer/src/CCseScheduleDB.cpp Thu Aug 19 10:54:18 2010 +0300 @@ -1430,11 +1430,16 @@ { CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduleDB::CompactDb"); // Compact database - TInt err( iScheduleDb.Compact() ); - if ( err != KErrNone ) + + if( iDbAccess != ECseDbLocked ) { - CSELOGSTRING2_HIGH_LEVEL("iScheduleDb.Compact() failed: %d", err); + TInt err( iScheduleDb.Compact() ); + if ( err != KErrNone ) + { + CSELOGSTRING2_HIGH_LEVEL("iScheduleDb.Compact() failed: %d", err); + } } + // Cancel timer if it is running if ( iCompactTimer ) { @@ -1463,6 +1468,14 @@ { // Backup and restore starting, close the db CloseDbFile(); + + // Cancel timer if it is running + if ( iCompactTimer ) + { + iCompactTimer->Cancel(); + delete iCompactTimer; + iCompactTimer = NULL; + } } break;