Author: jflesch
Date: 2007-07-23 17:56:10 +0000 (Mon, 23 Jul 2007)
New Revision: 14284

Modified:
   trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java
Log:
Check that we don't have twice the same message id in the database

Modified: 
trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java   
2007-07-23 17:49:05 UTC (rev 14283)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/frostKSK/KSKMessageParser.java   
2007-07-23 17:56:10 UTC (rev 14284)
@@ -16,7 +16,7 @@

 /**
  * Dirty parser reusing some Frost functions
- * (Note: dirty because of the XML)
+ * (Note: dirty mainly because of the Frost format :p)
  */
 public class KSKMessageParser {

@@ -36,6 +36,28 @@
        private String body;


+       private boolean alreadyInTheDb(Hsqldb db, String msgId) {
+               try {
+                       synchronized(db.dbLock) {
+                               PreparedStatement st;
+
+                               st = 
db.getConnection().prepareStatement("SELECT id FROM frostKSKMessages "+
+                                                                        "WHERE 
msgId = ? LIMIT 1");
+                               st.setString(1, msgId);
+
+                               ResultSet res = st.executeQuery();
+
+                               return (res.next());
+                       }
+               } catch(SQLException e) {
+                       Logger.error(this,
+                                    "Exception while checking if the message 
was already in the db: "+
+                                    e.toString());
+                       return false;
+               }
+       }
+
+
        public boolean insert(Hsqldb db,
                              int boardId, int rev,
                              String boardNameExpected) {
@@ -48,6 +70,10 @@
                    || 
!(boardNameExpected.toLowerCase().equals(board.toLowerCase())))
                        return false;

+               if (alreadyInTheDb(db, messageId)) {
+                       Logger.info(this, "We have already this id in the db 
?!");
+                       return false;
+               }

                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.M.d 
HH:mm:ss");



Reply via email to