public GenericResult set()

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