diff options
author | Ingo Bauersachs <ingo@jitsi.org> | 2014-12-02 19:42:26 +0100 |
---|---|---|
committer | Ingo Bauersachs <ingo@jitsi.org> | 2014-12-02 19:42:26 +0100 |
commit | 47aa2f06a042dbb298f30b3626631dc8a856256e (patch) | |
tree | f6203b703bc831ceea1f3ca2768a1d3bc5d13112 /src/net/java/sip/communicator/impl/configuration/JdbcConfigService.java | |
parent | d8d023bfe22acf4ef1ffffe327c7d9753edc36f5 (diff) | |
download | jitsi-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.java | 15 |
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; |