by default, UIDVALIDITY is randomly regenerated on each login
authoradam <adam@megacz.com>
Fri, 3 Sep 2004 00:56:10 +0000 (00:56 +0000)
committeradam <adam@megacz.com>
Fri, 3 Sep 2004 00:56:10 +0000 (00:56 +0000)
darcs-hash:20040903005610-5007d-3fd60f39b7b71d0da17821e5646a423a1999f375.gz

src/org/ibex/mail/target/Mailbox.java
src/org/ibex/mail/target/MessageArrayMailbox.java

index 48e7a45..b650006 100644 (file)
@@ -30,7 +30,6 @@ public abstract class Mailbox extends Target {
     public abstract void             copy(Query q, Mailbox dest);
     public abstract int              count(Query q);
     public abstract int              uidNext();
-    public abstract int              uidValidity();
     public abstract void             rename(String newName);      /* FIXME: IMAP semantics require creating parent dirs */
     public abstract void             destroy(boolean recursive);
     public abstract Mailbox          slash(String name, boolean create);
@@ -45,6 +44,9 @@ public abstract class Mailbox extends Target {
 
     // Default Implementation //////////////////////////////////////////////////////////////////////////////
 
+    private int randomUidValidity = new Random().nextInt();
+    public  int uidValidity()  { return randomUidValidity; }
+
     /** default, inefficient implementation of Mailbox; only requires a few methods to be implemented */
     public static abstract class Default extends Mailbox {
         public Mailbox.Iterator iterator(Query q) { return new Mailbox.Iterator.QueryIterator(q, this); }
index 44d7665..b549d4c 100644 (file)
@@ -16,7 +16,6 @@ public class MessageArrayMailbox extends Mailbox.Default {
     public void             add(Message message) { return; }
     public void             add(Message message, int flags) { return; }
     public int              uidNext() { return messages.length+1; }
-    public int              uidValidity() { return 500; }
     public Mailbox.Iterator iterator() { return new MessageArrayMailbox.Iterator(); }
 
     public class Iterator extends Mailbox.Default.Iterator {