--- a/contentstorage/srvsrc/casrv.cpp Tue Mar 23 23:17:02 2010 +0200
+++ b/contentstorage/srvsrc/casrv.cpp Tue Mar 23 23:28:12 2010 +0200
@@ -15,6 +15,7 @@
*
*/
// INCLUDE FILES
+#include <sqldb.h>
#include <eikenv.h>
#include <eikappui.h>
#include "casrv.h"
@@ -56,7 +57,7 @@
// ==================== GLOBAL FUNCTIONS ====================
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
EXPORT_C TInt RunCaServer()
@@ -107,7 +108,7 @@
// ==================== MEMBER FUNCTIONS ====================
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
CCaSrv* CCaSrv::NewL()
@@ -120,7 +121,7 @@
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
CCaSrv::~CCaSrv()
@@ -142,7 +143,7 @@
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
CCaStorageProxy* CCaSrv::GetStorageProxy()
@@ -151,7 +152,7 @@
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
CCaSrv::CCaSrv() :
@@ -160,7 +161,7 @@
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
void CCaSrv::ConstructL()
@@ -170,11 +171,19 @@
StopScheduler, NULL ) );
iStorageProxy = CCaStorageProxy::NewL();
iSrvEngUtils = CCaSrvEngUtils::NewL();
- iSrvManager = CCaSrvManager::NewL( *iStorageProxy, iSrvEngUtils );
+ TRAPD( err, iSrvManager = CCaSrvManager::NewL(
+ *iStorageProxy, iSrvEngUtils ) );
+ if( KSqlErrNotDb <= err && err <= KSqlErrGeneral )
+ {
+ //problem in loading one of plugins, probably data base is corrupted
+ //lets load it from ROM and try again
+ iStorageProxy->LoadDataBaseFromRomL();
+ iSrvManager = CCaSrvManager::NewL( *iStorageProxy, iSrvEngUtils );
+ }
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
CSession2* CCaSrv::NewSessionL( const TVersion& aVersion,
@@ -192,7 +201,7 @@
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
void CCaSrv::IncreaseSessionCount()
@@ -201,7 +210,7 @@
}
// ---------------------------------------------------------
-//
+//
// ---------------------------------------------------------
//
void CCaSrv::DecreaseSessionCount()