Author: jflesch
Date: 2007-08-21 11:22:24 +0000 (Tue, 21 Aug 2007)
New Revision: 14821

Modified:
   trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java
   trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java
Log:
Compact the database when disconnecting

Modified: trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java        2007-08-21 10:24:12 UTC 
(rev 14820)
+++ trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java        2007-08-21 11:22:24 UTC 
(rev 14821)
@@ -68,6 +68,8 @@

        public void disconnect() throws java.sql.SQLException {
                synchronized(dbLock) {
+                       connection.commit();
+                       executeQuery("SHUTDOWN COMPACT");
                        connection.close();
                        connection = null;
                }
@@ -82,10 +84,7 @@
                Logger.info(this, "Disconnecting from the database ...");

                try {
-                       connection.commit();
-                       executeQuery("SHUTDOWN");
-
-                       connection.close();
+                       disconnect();
                } catch(final java.sql.SQLException e) {
                        Logger.error(this, "SQLException while closing 
connection !");
                        e.printStackTrace();

Modified: trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java    2007-08-21 10:24:12 UTC 
(rev 14820)
+++ trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java    2007-08-21 11:22:24 UTC 
(rev 14821)
@@ -237,85 +237,87 @@
                                return;
                        }

-                       final java.sql.Statement st = 
hsqldb.getConnection().createStatement();
+                       synchronized(hsqldb.dbLock) {
+                               final java.sql.Statement st = 
hsqldb.getConnection().createStatement();

-                       ResultSet result;
+                               ResultSet result;

-                       if(!"drop_tables".equals( cmd.toLowerCase() )) {
-                               if(st.execute(cmd))
-                                       result = st.getResultSet();
-                               else {
+                               if(!"drop_tables".equals( cmd.toLowerCase() )) {
+                                       if(st.execute(cmd))
+                                               result = st.getResultSet();
+                                       else {
+                                               addToConsole("Ok\n");
+                                               return;
+                                       }
+                               } else {
+                                       
thaw.plugins.index.DatabaseManager.dropTables(hsqldb);
+                                       
thaw.plugins.TransferLogs.dropTables(hsqldb);
                                        addToConsole("Ok\n");
                                        return;
                                }
-                       } else {
-                               
thaw.plugins.index.DatabaseManager.dropTables(hsqldb);
-                               thaw.plugins.TransferLogs.dropTables(hsqldb);
-                               addToConsole("Ok\n");
-                               return;
-                       }

-                       if(result == null) {
-                               addToConsole("(null)\n");
-                               return;
-                       }
+                               if(result == null) {
+                                       addToConsole("(null)\n");
+                                       return;
+                               }

-                       if(result.getFetchSize() == 0) {
-                               addToConsole("(done)\n");
-                               return;
-                       }
+                               if(result.getFetchSize() == 0) {
+                                       addToConsole("(done)\n");
+                                       return;
+                               }

-                       java.sql.SQLWarning warning = result.getWarnings();
+                               java.sql.SQLWarning warning = 
result.getWarnings();

-                       while(warning != null) {
-                               addToConsole("Warning: "+warning.toString());
-                               warning = warning.getNextWarning();
-                       }
+                               while(warning != null) {
+                                       addToConsole("Warning: 
"+warning.toString());
+                                       warning = warning.getNextWarning();
+                               }



-                       final ResultSetMetaData metadatas = 
result.getMetaData();
+                               final ResultSetMetaData metadatas = 
result.getMetaData();

-                       final int nmbCol = metadatas.getColumnCount();
+                               final int nmbCol = metadatas.getColumnCount();

-                       addToConsole("      ");
+                               addToConsole("      ");

-                       for(int i = 1; i <= nmbCol ; i++) {
-                               display(metadatas.getColumnLabel(i), 
metadatas.getColumnDisplaySize(i));
-                               addToConsole("  ");
-                       }
-                       addToConsole("\n");
+                               for(int i = 1; i <= nmbCol ; i++) {
+                                       display(metadatas.getColumnLabel(i), 
metadatas.getColumnDisplaySize(i));
+                                       addToConsole("  ");
+                               }
+                               addToConsole("\n");

-                       addToConsole("      ");
-                       for(int i = 1; i <= nmbCol ; i++) {
-                               display(metadatas.getColumnTypeName(i), 
metadatas.getColumnDisplaySize(i));
-                               addToConsole("  ");
-                       }
-                       addToConsole("\n");
+                               addToConsole("      ");
+                               for(int i = 1; i <= nmbCol ; i++) {
+                                       display(metadatas.getColumnTypeName(i), 
metadatas.getColumnDisplaySize(i));
+                                       addToConsole("  ");
+                               }
+                               addToConsole("\n");

-                       addToConsole("      ");
-                       for(int i = 1; i <= nmbCol ; i++) {
-                               display("----", 
metadatas.getColumnDisplaySize(i));
-                               addToConsole("  ");
-                       }
-                       addToConsole("\n");
+                               addToConsole("      ");
+                               for(int i = 1; i <= nmbCol ; i++) {
+                                       display("----", 
metadatas.getColumnDisplaySize(i));
+                                       addToConsole("  ");
+                               }
+                               addToConsole("\n");

-                       boolean ret = true;
+                               boolean ret = true;

-                       while(ret) {
-                               ret = result.next();
+                               while(ret) {
+                                       ret = result.next();

-                               if(!ret)
-                                       break;
+                                       if(!ret)
+                                               break;

-                               display(Integer.toString(result.getRow()), 4);
-                               addToConsole("  ");
+                                       
display(Integer.toString(result.getRow()), 4);
+                                       addToConsole("  ");

-                               for(int i =1; i <= nmbCol ; i++) {
-                                       display(result.getString(i), 
metadatas.getColumnDisplaySize(i));
-                                       addToConsole("  ");
+                                       for(int i =1; i <= nmbCol ; i++) {
+                                               display(result.getString(i), 
metadatas.getColumnDisplaySize(i));
+                                               addToConsole("  ");
+                                       }
+                                       addToConsole("\n");
                                }
-                               addToConsole("\n");
                        }

                } catch(final java.sql.SQLException e) {


Reply via email to