weaver 2004/02/23 16:37:11
Modified: components/rdbms/src/java/org/apache/jetspeed/components/hsql
HSQLServerComponent.java
Log:
all kinds a' crazy shit to get HSQL to work "right"
Revision Changes Path
1.2 +32 -12
jakarta-jetspeed-2/components/rdbms/src/java/org/apache/jetspeed/components/hsql/HSQLServerComponent.java
Index: HSQLServerComponent.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/components/rdbms/src/java/org/apache/jetspeed/components/hsql/HSQLServerComponent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HSQLServerComponent.java 22 Feb 2004 22:40:02 -0000 1.1
+++ HSQLServerComponent.java 24 Feb 2004 00:37:10 -0000 1.2
@@ -54,6 +54,8 @@
package org.apache.jetspeed.components.hsql;
import java.io.File;
import java.io.IOException;
+import java.net.ConnectException;
+import java.net.Socket;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
@@ -85,6 +87,8 @@
private boolean trace;
private String user;
private String fqPath;
+ private HSQLServer HSQLthread;
+
public HSQLServerComponent(int port, String user, String password, String
dbScriptPath, boolean trace,
boolean silent)
throws IOException
@@ -118,9 +122,23 @@
*/
public void start()
{
- HSQLServer serverThread = new HSQLServer(port, fqPath);
- serverThread.start();
- // verify
+ HSQLthread = new HSQLServer(port, fqPath);
+ boolean started = false;
+ int startCount = 0;
+ while(!started && startCount < 5)
+ {
+ try
+ {
+ startCount++;
+ HSQLthread.start();
+ started = true;
+ }
+ catch (Exception e1)
+ {
+
+ }
+ }
+
try
{
@@ -176,6 +194,7 @@
{
try
{
+ log.info("====== SHUTTING DOWN HSQL Server ========");
Class.forName("org.hsqldb.jdbcDriver");
String url = "jdbc:hsqldb:hsql://127.0.0.1:" + port;
Connection con = DriverManager.getConnection(url, user, password);
@@ -183,20 +202,19 @@
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
+
+ // block while shutting down
+ Socket socket = null;
try
{
- // block while shutting down
- while (!con.isClosed())
+ while (socket == null || socket.isConnected())
{
- stmt = con.createStatement();
- stmt.executeUpdate(sql);
- stmt.close();
+ socket = new Socket("127.0.0.1", port);
+ // Thread.sleep(2000);
}
- }
- //SQLException signifies a "broken" connection
- catch (SQLException e1)
+ } catch (ConnectException e1)
{
-
+ log.info("HSQL Socket successfully closed.");
}
}
catch (Exception e)
@@ -207,6 +225,7 @@
class HSQLServer extends Thread
{
private String[] args;
+
HSQLServer(int port, String dbPath)
{
args =
@@ -222,6 +241,7 @@
"-trace",
String.valueOf(trace)};
setName("Jetspeed HSQLDB Thread");
+ setDaemon(true);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]