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();