in server/src/main/java/org/apache/hupa/server/service/SetFlagServiceImpl.java [42:74]
public GenericResult set(SetFlagAction action) throws Exception {
User user = getUser();
ImapFolder folder = action.getFolder();
List<Long> uids = action.getUids();
com.sun.mail.imap.IMAPFolder f = null;
try {
IMAPStore store = cache.get(user);
f = (com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
if (f.isOpen() == false) {
f.open(Folder.READ_WRITE);
}
Message[] msgs = f.getMessagesByUID(toArray(uids));
Flag flag = JavamailUtil.convert(action.getFlag());
Flags flags = new Flags();
flags.add(flag);
f.setFlags(msgs, flags, action.getValue());
return new GenericResultImpl();
} catch (MessagingException e) {
String errorMsg = "Error while setting flags of messages with uids " + uids + " for user " + user;
logger.error(errorMsg, e);
throw new Exception(errorMsg, e);
} finally {
if (f != null && f.isOpen()) {
try {
f.close(false);
} catch (MessagingException e) {
// ignore on close
}
}
}
}