in server/src/main/java/org/apache/hupa/server/service/GetMessageDetailsServiceImpl.java [78:112]
protected MessageDetails exposeMessage(User user, ImapFolder folder, long uid) throws Exception {
IMAPStore store = null;
com.sun.mail.imap.IMAPFolder f = null;
try {
store = cache.get(user);
f = (com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
if (f.isOpen() == false) {
f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
}
MimeMessage message = (MimeMessage) f.getMessageByUID(uid);
MessageDetails mDetails = mimeToDetails(message, f.getFullName(), uid, user);
mDetails.setUid(uid);
f.setFlags(new Message[] { message }, new Flags(Flag.SEEN), true);
return mDetails;
} catch (Exception e) {
logger.error("Unable to expose msg for user " + user + " in folder " + folder + " with uid " + uid, e);
throw new Exception("Unable to expose msg for user " + user + " in folder " + folder + " with uid " + uid);
} finally {
if (f != null && f.isOpen()) {
try {
f.close(false);
} catch (MessagingException e) {
// ignore on close
}
}
}
}