aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java
diff options
context:
space:
mode:
authorIngo Bauersachs <ingo@jitsi.org>2014-12-02 19:42:26 +0100
committerIngo Bauersachs <ingo@jitsi.org>2014-12-02 19:42:26 +0100
commit47aa2f06a042dbb298f30b3626631dc8a856256e (patch)
treef6203b703bc831ceea1f3ca2768a1d3bc5d13112 /src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java
parentd8d023bfe22acf4ef1ffffe327c7d9753edc36f5 (diff)
downloadjitsi-47aa2f06a042dbb298f30b3626631dc8a856256e.zip
jitsi-47aa2f06a042dbb298f30b3626631dc8a856256e.tar.gz
jitsi-47aa2f06a042dbb298f30b3626631dc8a856256e.tar.bz2
Test the database connection more thoroughly
If the HSQLDB lies on a network share and the computer went into standby, the connection still indicates that the connection is valid while it actually is not. Check if a SELECT is posssible and recreate the connection if not.
Diffstat (limited to 'src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java')
-rw-r--r--src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java b/src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java
index 35f7e01..f917213 100644
--- a/src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java
+++ b/src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java
@@ -151,7 +151,20 @@ public final class JdbcConfigService
{
if (this.connection != null && this.connection.isValid(1))
{
- return;
+ try
+ {
+ PreparedStatement st = this.connection.prepareStatement(
+ "SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS");
+ if (st.execute())
+ {
+ return;
+ }
+ }
+ catch(Exception e)
+ {
+ this.connection = null;
+ logger.error("Database connection is invalid, recreating", e);
+ }
}
String filename;