public GenericResult move()

in server/src/main/java/org/apache/hupa/server/service/MoveMessageServiceImpl.java [36:62]


    public GenericResult move(MoveMessageAction action) throws Exception {
        User user = getUser();
        try {
            IMAPStore store = cache.get(user);
            IMAPFolder folder = (IMAPFolder) store.getFolder(action.getOldFolder().getFullName());
            if (folder.isOpen() == false) {
                folder.open(Folder.READ_WRITE);
            }
            Message m = folder.getMessageByUID(action.getMessageUid());
            Message[] mArray = new Message[] { m };
            folder.copyMessages(mArray, store.getFolder(action.getNewFolder().getFullName()));
            folder.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
            try {
                folder.expunge(mArray);
                folder.close(false);
            } catch (MessagingException e) {
                // prolly UID expunge is not supported
                folder.close(true);
            }
            return new GenericResultImpl();
        } catch (MessagingException e) {
            logger.error(
                    "Error while moving message " + action.getMessageUid() + " from folder " + action.getOldFolder()
                            + " to " + action.getNewFolder(), e);
            throw new Exception(e);
        }
    }