Author: jflesch
Date: 2007-08-02 19:31:57 +0000 (Thu, 02 Aug 2007)
New Revision: 14469

Modified:
   trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoardFactory.java
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java
Log:
Make the distinction between the date in the messages and in the message keys

Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java   2007-08-02 18:57:47 UTC 
(rev 14468)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPQueryManager.java   2007-08-02 19:31:57 UTC 
(rev 14469)
@@ -141,7 +141,7 @@

                        while (isRunning(th)) {
                                Logger.warning(this, "Notifier thread 
('"+th.toString()+"') seems to be blocked !!");
-                               try { Thread.sleep(1000); } 
catch(InterruptedException e) { /* \_o< */ }
+                               try { Thread.sleep(TIMEOUT); } 
catch(InterruptedException e) { /* \_o< */ }
                        }
                }


Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java   
2007-08-02 18:57:47 UTC (rev 14468)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoard.java   
2007-08-02 19:31:57 UTC (rev 14469)
@@ -403,7 +403,7 @@
        protected int getNextNonDownloadedRev(Date daDate, int rev) {
                daDate = getMidnight(daDate);

-               java.sql.Timestamp date = new 
java.sql.Timestamp(daDate.getTime());
+               java.sql.Date date = new java.sql.Date(daDate.getTime());


                try {
@@ -413,12 +413,11 @@
                                PreparedStatement st;

                                st = 
db.getConnection().prepareStatement("SELECT rev FROM frostKSKMessages "+
-                                                                        "WHERE 
date >= ? AND date < ? "+
+                                                                        "WHERE 
keyDate = ? "+
                                                                         "AND 
rev > ? AND boardId = ? ORDER by rev");
-                               st.setTimestamp(1, date);
-                               st.setTimestamp(2, new 
java.sql.Timestamp(date.getTime() + 24*60*60*1000));
-                               st.setInt( 3, rev);
-                               st.setInt(4, id);
+                               st.setDate(1, date);
+                               st.setInt( 2, rev);
+                               st.setInt(3, id);

                                ResultSet set = st.executeQuery();

@@ -447,7 +446,7 @@
        protected int getLastDownloadedRev(Date daDate) {
                daDate = getMidnight(daDate);

-               java.sql.Timestamp date = new 
java.sql.Timestamp(daDate.getTime());
+               java.sql.Date date = new java.sql.Date(daDate.getTime());


                try {
@@ -457,13 +456,12 @@
                                PreparedStatement st;

                                st = 
db.getConnection().prepareStatement("SELECT rev FROM frostKSKMessages "+
-                                                                        "WHERE 
date >= ? AND date < ? "+
+                                                                        "WHERE 
keyDate = ? "+
                                                                         "AND 
boardId = ? "+
                                                                         "ORDER 
by rev DESC "+
                                                                         "LIMIT 
1");
-                               st.setTimestamp(1, date);
-                               st.setTimestamp(2, new 
java.sql.Timestamp(date.getTime() + 24*60*60*1000));
-                               st.setInt(3, id);
+                               st.setDate(1, date);
+                               st.setInt(2, id);

                                ResultSet set = st.executeQuery();

@@ -538,7 +536,7 @@
                                st = 
db.getConnection().prepareStatement("UPDATE frostKSKBoards "+
                                                                         "SET 
lastUpdate = ? "+
                                                                         "WHERE 
id = ?");
-                               st.setTimestamp(1, new java.sql.Timestamp(new 
java.util.Date().getTime()));
+                               st.setDate(1, new java.sql.Date(new 
java.util.Date().getTime()));
                                st.setInt(2, id);
                                st.execute();
                        }

Modified: 
trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoardFactory.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoardFactory.java    
2007-08-02 18:57:47 UTC (rev 14468)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKBoardFactory.java    
2007-08-02 19:31:57 UTC (rev 14469)
@@ -137,6 +137,14 @@
                        if (convertDatabase_0_to_1())
                                
core.getConfig().setValue("frostKSKDatabaseVersion", "2");
                }
+
+               /* due to a stupid mistake, the rev 1 will never really exist */
+
+               if 
("1".equals(core.getConfig().getValue("frostKSKDatabaseVersion"))
+                   || 
"2".equals(core.getConfig().getValue("frostKSKDatabaseVersion"))) {
+                       if (convertDatabase_2_to_3())
+                               
core.getConfig().setValue("frostKSKDatabaseVersion", "3");
+               }
        }

        protected boolean convertDatabase_0_to_1() {
@@ -155,10 +163,43 @@
                return true;
        }

+       protected boolean convertDatabase_2_to_3() {
+               if (!sendQuery("ALTER TABLE frostKSKMessages ADD COLUMN keyDate 
DATE DEFAULT NULL NULL")) {
+                       Logger.error(this, "Error while converting the board 
database from version 2 to 3");
+                       return false;
+               }

+               try {
+                       synchronized(db.dbLock) {
+                               PreparedStatement st;
+
+                               st = 
db.getConnection().prepareStatement("SELECT id, date FROM frostKSKMessages");
+
+                               ResultSet set = st.executeQuery();
+
+                               st = 
db.getConnection().prepareStatement("UPDATE frostKSKMessages SET keyDate = ? 
WHERE id = ?");
+
+                               while (set.next()) {
+                                       int id = set.getInt("id");
+                                       java.sql.Timestamp timestamp = 
set.getTimestamp("date");
+                                       java.sql.Date date = new 
java.sql.Date(timestamp.getTime());
+
+                                       st.setDate(1, date);
+                                       st.setInt(2, id);
+                                       st.execute();
+                               }
+                       }
+               } catch(SQLException e) {
+                       Logger.error(this, "Error while converting the board 
database from version 2 to 3: "+e.toString());
+               }
+
+               return true;
+       }
+
+
        protected void createTables() {
-               if (core.getConfig().getValue("frostKSKDatabaseVersion") != 
null)
-                       core.getConfig().setValue("frostKSKDatabaseVersion", 
"1");
+               if (core.getConfig().getValue("frostKSKDatabaseVersion") == 
null)
+                       core.getConfig().setValue("frostKSKDatabaseVersion", 
"3");

                sendQuery("CREATE CACHED TABLE frostKSKBoards ("
                          + "id INTEGER IDENTITY NOT NULL, "
@@ -178,6 +219,7 @@
                          + "nick VARCHAR(128) NOT NULL, "
                          + "sigId INTEGER NULL, "
                          + "content VARCHAR(32768) NOT NULL, "
+                         + "keyDate DATE NOT NULL, "
                          + "date TIMESTAMP NOT NULL, "
                          + "msgId VARCHAR(128) NOT NULL, "
                          + "inReplyToId VARCHAR(128) NULL, "

Modified: 
trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java   
2007-08-02 18:57:47 UTC (rev 14468)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java   
2007-08-02 19:31:57 UTC (rev 14469)
@@ -178,14 +178,16 @@
                }


-               java.sql.Timestamp dateSql;
+               java.sql.Timestamp timestampSql;

                if (dateUtil != null)
-                       dateSql = new java.sql.Timestamp(dateUtil.getTime());
+                       timestampSql = new 
java.sql.Timestamp(dateUtil.getTime());
                else
-                       dateSql = new java.sql.Timestamp(boardDate.getTime());
+                       timestampSql = new 
java.sql.Timestamp(boardDate.getTime());

+               java.sql.Date dateSql = new java.sql.Date(boardDate.getTime());

+
                int replyToId = -1;

                try {
@@ -213,10 +215,12 @@
                                st = 
db.getConnection().prepareStatement("INSERT INTO frostKSKMessages ("+
                                                                         
"subject, nick, sigId, content, "+
                                                                         "date, 
msgId, inReplyTo, inReplyToId, "+
-                                                                        "rev, 
read, archived, encryptedFor, boardId) VALUES ("+
+                                                                        "rev, 
keyDate, read, archived, "+
+                                                                        
"encryptedFor, boardId) VALUES ("+
                                                                         "?, ?, 
?, ?, "+
                                                                         "?, ?, 
?, ?, "+
-                                                                        "?, ?, 
?, ?, ?)");
+                                                                        "?, ?, 
?, ?, "+
+                                                                        "?, 
?)");
                                st.setString(1, subject);
                                st.setString(2, from); /* nick */
                                if (identity != null)
@@ -224,7 +228,7 @@
                                else
                                        st.setNull(3, Types.INTEGER);
                                st.setString(4, body); /* content */
-                               st.setTimestamp(5, dateSql);
+                               st.setTimestamp(5, timestampSql);
                                st.setString(6, messageId);

                                if (replyToId >= 0)
@@ -239,15 +243,17 @@

                                st.setInt(9, rev);

-                               st.setBoolean(10, read);
-                               st.setBoolean(11, archived);
+                               st.setDate(10, dateSql);

+                               st.setBoolean(11, read);
+                               st.setBoolean(12, archived);
+
                                if (encryptedFor == null)
-                                       st.setNull(12, Types.INTEGER);
+                                       st.setNull(13, Types.INTEGER);
                                else
-                                       st.setInt(12, encryptedFor.getId());
+                                       st.setInt(13, encryptedFor.getId());

-                               st.setInt(13, boardId);
+                               st.setInt(14, boardId);

                                st.execute();



Reply via email to