[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim] akonadiconsole: Make akonadiconsole usable (without a restart) if the akonadi server was re
From: Andras Mantia <amantia () kde ! org>
Date: 2013-11-15 20:09:48
Message-ID: E1VhPi8-0002Q8-98 () scm ! kde ! org
[Download RAW message or body]
Git commit 20235d3e697163ffb3c4f70e2a3e04796c9cdb7c by Andras Mantia.
Committed on 15/11/2013 at 20:06.
Pushed by amantia into branch 'master'.
Make akonadiconsole usable (without a restart) if the akonadi server was restarted behind the scenes.
M +13 -1 akonadiconsole/dbaccess.cpp
http://commits.kde.org/kdepim/20235d3e697163ffb3c4f70e2a3e04796c9cdb7c
diff --git a/akonadiconsole/dbaccess.cpp b/akonadiconsole/dbaccess.cpp
index a7371e9..4f7f310 100644
--- a/akonadiconsole/dbaccess.cpp
+++ b/akonadiconsole/dbaccess.cpp
@@ -25,6 +25,7 @@
#include <QSettings>
#include <QSqlDatabase>
#include <QSqlError>
+#include <QSqlQuery>
#include <KGlobal>
#include <KLocale>
@@ -37,6 +38,11 @@ class DbAccessPrivate
public:
DbAccessPrivate()
{
+ init();
+ }
+
+ void init()
+ {
const QString serverConfigFile = saveDir( "config" ) + QLatin1String("/akonadiserverrc");
QSettings settings( serverConfigFile, QSettings::IniFormat );
@@ -67,8 +73,14 @@ class DbAccessPrivate
};
K_GLOBAL_STATIC( DbAccessPrivate, sInstance )
-
QSqlDatabase DbAccess::database()
{
+ //hack to detect mysql gone away error
+ QSqlQuery query( QLatin1String("SELECT * FROM schemaversiontable") );
+ if ( !query.exec() && query.lastError().text().contains( "MySQL server has gone away" ) ) {
+ sInstance->database.close();
+ QSqlDatabase::removeDatabase(sInstance->database.connectionName());
+ sInstance->init();
+ }
return sInstance->database;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic