make SqliteMailbox.insert() synchronized
[org.ibex.mail.git] / src / org / ibex / mail / SqliteMailbox.java
index 384dc4d..49a2700 100644 (file)
@@ -48,7 +48,7 @@ public class SqliteMailbox extends Mailbox.Default implements MailTree {
      */
     // FIXME: should messageid_ be decared unique?
     private static final String columns_ =
-        "uid_ INTEGER PRIMARY KEY AUTOINCREMENT, messageid_ unique,from_,to_,date_,subject_,headers_,body_,flags_";
+        "uid_ INTEGER PRIMARY KEY AUTOINCREMENT, messageid_,from_,to_,date_,subject_,headers_,body_,flags_";
 
     private final int uidValidity;
     private final File file;
@@ -235,8 +235,10 @@ public class SqliteMailbox extends Mailbox.Default implements MailTree {
             return super.count(q);
         }
     }
-    public void             insert(Message m, int flags) {
+    public synchronized void insert(Message m, int flags) {
         try {
+
+            /*
             PreparedStatement query = conn.prepareStatement("select headers_,body_,flags_ from 'mail' where messageid_=?");
             query.setString(1, m.messageid);
             Log.warn("SQL", "select headers_,body_,flags_ from 'mail' where messageid_="+m.messageid);
@@ -260,6 +262,7 @@ public class SqliteMailbox extends Mailbox.Default implements MailTree {
                     return;
                 }
             }
+            */
             PreparedStatement add =
                 conn.prepareStatement("insert "+/*"or replace "+*/"into 'mail' ("+columns+") values (?,?,?,?,?,?,?,?)");
             add.setString(1, m.messageid+"");
@@ -301,9 +304,9 @@ public class SqliteMailbox extends Mailbox.Default implements MailTree {
         public Headers head()   {
             if (m != null) return m.headers;
             try {
-                PreparedStatement query = conn.prepareStatement("select headers_,flags_ from 'mail' where messageid_=?");
-                query.setString(1, rs.getString(1));
-                Log.warn("SQL", "select headers_,flags_ from 'mail' where messageid_="+rs.getString(1));
+                PreparedStatement query = conn.prepareStatement("select headers_,flags_ from 'mail' where uid_=?");
+                query.setString(1, rs.getString(2));
+                Log.warn("SQL", "select headers_,flags_ from 'mail' where uid_="+rs.getString(2));
 
                 ResultSet rs2 = query.executeQuery();
                 if (!rs2.next()) { Log.error("XXX", "should not happen"); return null; }
@@ -314,9 +317,9 @@ public class SqliteMailbox extends Mailbox.Default implements MailTree {
         public Message cur()    {
             try {
                 if (m!=null) return m;
-                PreparedStatement query = conn.prepareStatement("select headers_,body_,flags_ from 'mail' where messageid_=?");
-                query.setString(1, rs.getString(1));
-                Log.warn("SQL", "select headers_,body_,flags_ from 'mail' where messageid_="+rs.getString(1));
+                PreparedStatement query = conn.prepareStatement("select headers_,body_,flags_ from 'mail' where uid_=?");
+                query.setString(1, rs.getString(2));
+                Log.warn("SQL", "select headers_,body_,flags_ from 'mail' where uid_="+rs.getString(2));
 
                 ResultSet rs2 = query.executeQuery();
                 if (!rs2.next()) { Log.error("XXX", "should not happen"); return null; }