Author: rdonkin
Date: Sat Aug 11 00:44:20 2007
New Revision: 564845

URL: http://svn.apache.org/viewvc?view=rev&rev=564845
Log:
Set RECENT flag correctly.

Modified:
    
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java
    
james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalAuthenticatedStateTest.java
    
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/UidFlagSizeFetchSessionTest.java
    
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
    
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/om/MailboxRow.java

Modified: 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java?view=diff&rev=564845&r1=564844&r2=564845
==============================================================================
--- 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java
 (original)
+++ 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java
 Sat Aug 11 00:44:20 2007
@@ -21,6 +21,8 @@
 
 import java.util.Date;
 
+import javax.mail.MessagingException;
+import javax.mail.Flags.Flag;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.avalon.framework.logger.Logger;
@@ -116,9 +118,12 @@
 
     private ImapResponseMessage appendToMailbox(MimeMessage message, Date 
datetime, ImapSession session, String tag, ImapCommand command, 
ImapMailboxSession mailbox) throws MailboxException {
         try {
+            message.setFlag(Flag.RECENT, true);
             mailbox.appendMessage(message, datetime, 0);
         } catch (MailboxManagerException e) {
             // TODO why not TRYCREATE?
+            throw new MailboxException(e);
+        } catch (MessagingException e) {
             throw new MailboxException(e);
         }
         final CommandCompleteResponse result = new CommandCompleteResponse(

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalAuthenticatedStateTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalAuthenticatedStateTest.java?view=diff&rev=564845&r1=564844&r2=564845
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalAuthenticatedStateTest.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/experimental/imapserver/ExperimentalAuthenticatedStateTest.java
 Sat Aug 11 00:44:20 2007
@@ -26,10 +26,6 @@
         super(HostSystemFactory.createStandardImap());
     }
     
-    public void testStatus() throws Exception {
-        // TODO: fix bug - recent flag not set
-    }
-    
     public void testSubscribe() throws Exception {
         // TODO: user is automatically subscribed to INBOX. 
         // Check whether this is correct behaviour

Modified: 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/UidFlagSizeFetchSessionTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/UidFlagSizeFetchSessionTest.java?view=diff&rev=564845&r1=564844&r2=564845
==============================================================================
--- 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/UidFlagSizeFetchSessionTest.java
 (original)
+++ 
james/server/trunk/phoenix-deployment/src/test/org/apache/james/imapserver/handler/session/UidFlagSizeFetchSessionTest.java
 Sat Aug 11 00:44:20 2007
@@ -97,6 +97,11 @@
         assertEquals(sc.getRecentCount(),5);
         verifyCommand(sc);
         
+        // Recent flag is reset by select
+        for (int i=0;i<msgs.length;i++) {
+            msgs[i].setFlag(Flag.RECENT, false);
+        }
+        
         FetchCommand fc=new FetchCommand(msgs,1,-1);
         fc.setUids(uids);
         fc.setFetchFlags(true);

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java?view=diff&rev=564845&r1=564844&r2=564845
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
 Sat Aug 11 00:44:20 2007
@@ -342,6 +342,9 @@
         flags.add(Flags.Flag.RECENT);
         try {
             int count = getMailboxRow().countMessages(flags, true);
+            if (reset) {
+                getMailboxRow().resetRecent();
+            }
             return count;
         } catch (TorqueException e) {
             throw new MailboxManagerException(e);

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/om/MailboxRow.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/om/MailboxRow.java?view=diff&rev=564845&r1=564844&r2=564845
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/om/MailboxRow.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/om/MailboxRow.java
 Sat Aug 11 00:44:20 2007
@@ -104,6 +104,11 @@
         int numberOfRecords = record.getValue(1).asInt();
         return numberOfRecords;
     }
-
-
+    
+    public void resetRecent() throws TorqueException {
+        String sql = "UPDATE " + MessageFlagsPeer.TABLE_NAME + " set "
+        + MessageFlagsPeer.RECENT + " = 0 WHERE " + 
+            MessageFlagsPeer.MAILBOX_ID + " = " + getMailboxId();
+        MessageFlagsPeer.executeStatement(sql);
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to