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);
}
}