Index: src/main/java/org/apache/james/imap/processor/MoveProcessor.java =================================================================== --- src/main/java/org/apache/james/imap/processor/MoveProcessor.java (revision 1419153) +++ src/main/java/org/apache/james/imap/processor/MoveProcessor.java (working copy) @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.List; +import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.ImapConstants; import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapProcessor; @@ -16,14 +17,19 @@ import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageRange; -public class MoveProcessor extends CopyProcessor implements CapabilityImplementingProcessor { +public class MoveProcessor extends AbstractMailboxProcessor implements CapabilityImplementingProcessor { private static final List CAPS = Collections.unmodifiableList(Arrays.asList(ImapConstants.MOVE_COMMAND_NAME)); + private CopyProcessor copyProcessor; - public MoveProcessor(ImapProcessor next, MailboxManager mailboxManager, - StatusResponseFactory factory) { - super(MoveRequest.class, next, mailboxManager, factory); - } + public MoveProcessor(final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory) { + this(MoveRequest.class, next, mailboxManager, factory); + } + + protected MoveProcessor(final Class acceptableClass, final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory) { + super(MoveRequest.class, next, mailboxManager, factory); + this.copyProcessor = new CopyProcessor(next, mailboxManager, factory); + } protected List process(final MailboxPath targetMailbox, final SelectedMailbox currentMailbox, @@ -42,4 +48,11 @@ return CAPS; } + @Override + protected void doProcess(MoveRequest request, ImapSession session, + String tag, ImapCommand command, Responder responder) { + copyProcessor.doProcess(request, session, tag, command, responder); + + } + }