diff -r bdf78597b41c -r 5af11d9814f5 videoscheduler/SchedulerServer/src/CCseScheduleDB.cpp --- a/videoscheduler/SchedulerServer/src/CCseScheduleDB.cpp Tue Jan 26 12:55:56 2010 +0200 +++ b/videoscheduler/SchedulerServer/src/CCseScheduleDB.cpp Thu Nov 04 11:29:04 2010 +0200 @@ -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;