Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto E. Escobar2013-06-24 23:54:54 +0000
committerRoberto E. Escobar2013-06-25 23:10:14 +0000
commit704d2142dc8d73812d542ad58abff0bf4045cf3b (patch)
treec668efdceb0b96d1f313314dc7510dd0751a403a /plugins/org.eclipse.osee.hsqldb
parentf3aa5aa9762ce4ddcd8573436d10b21966c6375a (diff)
downloadorg.eclipse.osee-704d2142dc8d73812d542ad58abff0bf4045cf3b.tar.gz
org.eclipse.osee-704d2142dc8d73812d542ad58abff0bf4045cf3b.tar.xz
org.eclipse.osee-704d2142dc8d73812d542ad58abff0bf4045cf3b.zip
bug: Clean-up HSQL Database shutdown
HSQL database is not closing down properly which causes test databases to be left behind in the file system. Change-Id: Iab05452ba685f93077ed7286c7cac451482143a3
Diffstat (limited to 'plugins/org.eclipse.osee.hsqldb')
-rw-r--r--plugins/org.eclipse.osee.hsqldb/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlDbServer.java26
-rw-r--r--plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlServerUtil.java9
3 files changed, 35 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.hsqldb/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.hsqldb/META-INF/MANIFEST.MF
index 9680ee46758..c34a39e370f 100644
--- a/plugins/org.eclipse.osee.hsqldb/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.hsqldb/META-INF/MANIFEST.MF
@@ -9,6 +9,7 @@ Import-Package: org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.jdk.core.util,
org.eclipse.osee.framework.jdk.core.util.network,
org.eclipse.osee.framework.logging,
+ org.hsqldb,
org.hsqldb.jdbc,
org.hsqldb.persist,
org.hsqldb.server
diff --git a/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlDbServer.java b/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlDbServer.java
index 85ea98f6f4f..01f00646794 100644
--- a/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlDbServer.java
+++ b/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlDbServer.java
@@ -38,6 +38,12 @@ public class HyperSqlDbServer {
instance.shutdown();
}
+ public static boolean stopServerWithWait() {
+ instance.shutdown();
+ return instance.isShutdown();
+
+ }
+
private void startServerInternal(String host, int port, int webPort, IDatabaseInfo dbInfo) throws Exception {
OseeLog.logf(HyperSqlDbServer.class, Level.INFO,
"Starting HyperSQL Database Server on [%s:%s] with webserver on [%s,%s]....", host, port, host, webPort);
@@ -93,4 +99,24 @@ public class HyperSqlDbServer {
return knowIfServerUp;
}
+ private boolean isShutdown() {
+ boolean isDead = false;
+ int numTimes = CHECK_ALIVE_NUMBER_OF_TIMES;
+ while (!isDead && numTimes > 0) {
+ try {
+ numTimes--;
+ nwServer.testNotRunning();
+ isDead = true;
+ } catch (Exception e) {
+ isDead = false;
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException ex) {
+ // Do nothing
+ }
+ }
+ }
+ return isDead;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlServerUtil.java b/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlServerUtil.java
index ee01177287c..3bb9c353ad7 100644
--- a/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlServerUtil.java
+++ b/plugins/org.eclipse.osee.hsqldb/src/org/eclipse/osee/hsqldb/HyperSqlServerUtil.java
@@ -19,6 +19,7 @@ import java.util.Properties;
import java.util.logging.Level;
import org.eclipse.osee.framework.core.data.IDatabaseInfo;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.hsqldb.Database;
import org.hsqldb.persist.HsqlProperties;
import org.hsqldb.server.Server;
@@ -63,13 +64,19 @@ public final class HyperSqlServerUtil {
public void shutdown() {
for (Server server : serverControls) {
try {
- server.shutdown();
+ server.shutdownWithCatalogs(Database.CLOSEMODE_COMPACT);
} catch (Exception e) {
OseeLog.log(HyperSqlDbServer.class, Level.SEVERE, e.getMessage(), e);
}
}
}
+ public void testNotRunning() throws Exception {
+ for (Server server : serverControls) {
+ server.checkRunning(false);
+ }
+ }
+
public void start() {
for (Server server : serverControls) {
try {

Back to the top