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]

Reply via email to