You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/09/09 20:32:47 UTC

svn commit: r995531 - /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java

Author: norman
Date: Thu Sep  9 18:32:47 2010
New Revision: 995531

URL: http://svn.apache.org/viewvc?rev=995531&view=rev
Log:
better handling of INBOX rename (IMAP-208)

Modified:
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java?rev=995531&r1=995530&r2=995531&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java Thu Sep  9 18:32:47 2010
@@ -35,7 +35,6 @@ import org.apache.james.mailbox.MailboxM
 import org.apache.james.mailbox.MailboxNotFoundException;
 import org.apache.james.mailbox.MailboxPath;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageRange;
 
 public class RenameProcessor extends AbstractMailboxProcessor {
 
@@ -57,22 +56,13 @@ public class RenameProcessor extends Abs
         try {
             final MailboxManager mailboxManager = getMailboxManager();
             MailboxSession mailboxsession = ImapSessionUtils.getMailboxSession(session);
-            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
+            mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
 
-                
-                // if the mailbox is INBOX we need to move move the messages
-                // https://issues.apache.org/jira/browse/IMAP-188                           
-                MessageRange range = MessageRange.all();
-                // create the mailbox if it not exist yet
-                if (mailboxManager.mailboxExists(newPath, mailboxsession) == false) {
-                    mailboxManager.createMailbox(newPath, mailboxsession);
+            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
+                if (mailboxManager.mailboxExists(existingPath, mailboxsession) == false) {
+                    mailboxManager.createMailbox(existingPath, mailboxsession);
                 }
-                mailboxManager.copyMessages(range, existingPath, newPath, mailboxsession);
-                mailboxManager.deleteMailbox(existingPath, mailboxsession);
-                mailboxManager.createMailbox(existingPath, mailboxsession);
               
-            } else {
-                mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
             }
             okComplete(command, tag, responder);
             unsolicitedResponses(session, responder, false);



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r995531 - /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java

Posted by Norman Maurer <no...@apache.org>.
Exactly that was why exists check was introduced.. safety first ;)

Bye,
Norman


2010/9/10 Tim-Christian Mundt <de...@tim-erwin.de>:
> I just remembered why the previous implementation was so complicated:
> with maildir your approach wouldn't work. It only does, because there
> the MailboxMapper handles this case on its own. You surely knew about
> this and that's why you introduced the "if not exists line".
>
> Just wanted to make this explicit...
>
>
> Am Freitag, den 10.09.2010, 21:13 +0200 schrieb Tim-Christian Mundt:
>> Hi Norman,
>>
>> this is so stunningly simple that I first didn't understand it. That's
>> really better!
>>
>> Tim
>>
>> Am Donnerstag, den 09.09.2010, 18:32 +0000 schrieb norman@apache.org:
>> > Author: norman
>> > Date: Thu Sep  9 18:32:47 2010
>> > New Revision: 995531
>> >
>> > URL: http://svn.apache.org/viewvc?rev=995531&view=rev
>> > Log:
>> > better handling of INBOX rename (IMAP-208)
>> >
>> > Modified:
>> >     james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
>> >
>> > Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
>> > URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java?rev=995531&r1=995530&r2=995531&view=diff
>> > ==============================================================================
>> > --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java (original)
>> > +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java Thu Sep  9 18:32:47 2010
>> > @@ -35,7 +35,6 @@ import org.apache.james.mailbox.MailboxM
>> >  import org.apache.james.mailbox.MailboxNotFoundException;
>> >  import org.apache.james.mailbox.MailboxPath;
>> >  import org.apache.james.mailbox.MailboxSession;
>> > -import org.apache.james.mailbox.MessageRange;
>> >
>> >  public class RenameProcessor extends AbstractMailboxProcessor {
>> >
>> > @@ -57,22 +56,13 @@ public class RenameProcessor extends Abs
>> >          try {
>> >              final MailboxManager mailboxManager = getMailboxManager();
>> >              MailboxSession mailboxsession = ImapSessionUtils.getMailboxSession(session);
>> > -            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
>> > +            mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
>> >
>> > -
>> > -                // if the mailbox is INBOX we need to move move the messages
>> > -                // https://issues.apache.org/jira/browse/IMAP-188
>> > -                MessageRange range = MessageRange.all();
>> > -                // create the mailbox if it not exist yet
>> > -                if (mailboxManager.mailboxExists(newPath, mailboxsession) == false) {
>> > -                    mailboxManager.createMailbox(newPath, mailboxsession);
>> > +            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
>> > +                if (mailboxManager.mailboxExists(existingPath, mailboxsession) == false) {
>> > +                    mailboxManager.createMailbox(existingPath, mailboxsession);
>> >                  }
>> > -                mailboxManager.copyMessages(range, existingPath, newPath, mailboxsession);
>> > -                mailboxManager.deleteMailbox(existingPath, mailboxsession);
>> > -                mailboxManager.createMailbox(existingPath, mailboxsession);
>> >
>> > -            } else {
>> > -                mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
>> >              }
>> >              okComplete(command, tag, responder);
>> >              unsolicitedResponses(session, responder, false);
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> > For additional commands, e-mail: server-dev-help@james.apache.org
>> >
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-dev-help@james.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r995531 - /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java

Posted by Tim-Christian Mundt <de...@tim-erwin.de>.
I just remembered why the previous implementation was so complicated:
with maildir your approach wouldn't work. It only does, because there
the MailboxMapper handles this case on its own. You surely knew about
this and that's why you introduced the "if not exists line".

Just wanted to make this explicit...


Am Freitag, den 10.09.2010, 21:13 +0200 schrieb Tim-Christian Mundt:
> Hi Norman,
> 
> this is so stunningly simple that I first didn't understand it. That's
> really better!
> 
> Tim
> 
> Am Donnerstag, den 09.09.2010, 18:32 +0000 schrieb norman@apache.org:
> > Author: norman
> > Date: Thu Sep  9 18:32:47 2010
> > New Revision: 995531
> > 
> > URL: http://svn.apache.org/viewvc?rev=995531&view=rev
> > Log:
> > better handling of INBOX rename (IMAP-208)
> > 
> > Modified:
> >     james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
> > 
> > Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
> > URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java?rev=995531&r1=995530&r2=995531&view=diff
> > ==============================================================================
> > --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java (original)
> > +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java Thu Sep  9 18:32:47 2010
> > @@ -35,7 +35,6 @@ import org.apache.james.mailbox.MailboxM
> >  import org.apache.james.mailbox.MailboxNotFoundException;
> >  import org.apache.james.mailbox.MailboxPath;
> >  import org.apache.james.mailbox.MailboxSession;
> > -import org.apache.james.mailbox.MessageRange;
> >  
> >  public class RenameProcessor extends AbstractMailboxProcessor {
> >  
> > @@ -57,22 +56,13 @@ public class RenameProcessor extends Abs
> >          try {
> >              final MailboxManager mailboxManager = getMailboxManager();
> >              MailboxSession mailboxsession = ImapSessionUtils.getMailboxSession(session);
> > -            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
> > +            mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
> >  
> > -                
> > -                // if the mailbox is INBOX we need to move move the messages
> > -                // https://issues.apache.org/jira/browse/IMAP-188                           
> > -                MessageRange range = MessageRange.all();
> > -                // create the mailbox if it not exist yet
> > -                if (mailboxManager.mailboxExists(newPath, mailboxsession) == false) {
> > -                    mailboxManager.createMailbox(newPath, mailboxsession);
> > +            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
> > +                if (mailboxManager.mailboxExists(existingPath, mailboxsession) == false) {
> > +                    mailboxManager.createMailbox(existingPath, mailboxsession);
> >                  }
> > -                mailboxManager.copyMessages(range, existingPath, newPath, mailboxsession);
> > -                mailboxManager.deleteMailbox(existingPath, mailboxsession);
> > -                mailboxManager.createMailbox(existingPath, mailboxsession);
> >                
> > -            } else {
> > -                mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
> >              }
> >              okComplete(command, tag, responder);
> >              unsolicitedResponses(session, responder, false);
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> > For additional commands, e-mail: server-dev-help@james.apache.org
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r995531 - /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java

Posted by Tim-Christian Mundt <de...@tim-erwin.de>.
Hi Norman,

this is so stunningly simple that I first didn't understand it. That's
really better!

Tim

Am Donnerstag, den 09.09.2010, 18:32 +0000 schrieb norman@apache.org:
> Author: norman
> Date: Thu Sep  9 18:32:47 2010
> New Revision: 995531
> 
> URL: http://svn.apache.org/viewvc?rev=995531&view=rev
> Log:
> better handling of INBOX rename (IMAP-208)
> 
> Modified:
>     james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
> 
> Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
> URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java?rev=995531&r1=995530&r2=995531&view=diff
> ==============================================================================
> --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java (original)
> +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/RenameProcessor.java Thu Sep  9 18:32:47 2010
> @@ -35,7 +35,6 @@ import org.apache.james.mailbox.MailboxM
>  import org.apache.james.mailbox.MailboxNotFoundException;
>  import org.apache.james.mailbox.MailboxPath;
>  import org.apache.james.mailbox.MailboxSession;
> -import org.apache.james.mailbox.MessageRange;
>  
>  public class RenameProcessor extends AbstractMailboxProcessor {
>  
> @@ -57,22 +56,13 @@ public class RenameProcessor extends Abs
>          try {
>              final MailboxManager mailboxManager = getMailboxManager();
>              MailboxSession mailboxsession = ImapSessionUtils.getMailboxSession(session);
> -            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
> +            mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
>  
> -                
> -                // if the mailbox is INBOX we need to move move the messages
> -                // https://issues.apache.org/jira/browse/IMAP-188                           
> -                MessageRange range = MessageRange.all();
> -                // create the mailbox if it not exist yet
> -                if (mailboxManager.mailboxExists(newPath, mailboxsession) == false) {
> -                    mailboxManager.createMailbox(newPath, mailboxsession);
> +            if (existingPath.getName().equalsIgnoreCase(ImapConstants.INBOX_NAME)) {
> +                if (mailboxManager.mailboxExists(existingPath, mailboxsession) == false) {
> +                    mailboxManager.createMailbox(existingPath, mailboxsession);
>                  }
> -                mailboxManager.copyMessages(range, existingPath, newPath, mailboxsession);
> -                mailboxManager.deleteMailbox(existingPath, mailboxsession);
> -                mailboxManager.createMailbox(existingPath, mailboxsession);
>                
> -            } else {
> -                mailboxManager.renameMailbox(existingPath, newPath, mailboxsession);
>              }
>              okComplete(command, tag, responder);
>              unsolicitedResponses(session, responder, false);
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org