in server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java [85:118]
protected static Object readUserPreferencesFromIMAP(Log logger, User user, IMAPStore iStore, String folderName, String magicType)
throws MessagingException, IOException, ClassNotFoundException {
Folder folder = iStore.getFolder(folderName);
if (folder.exists()) {
if (!folder.isOpen()) {
folder.open(Folder.READ_WRITE);
}
Message message = null;
Message[] msgs = folder.getMessages();
for (Message msg : msgs) {
if (magicType.equals(msg.getSubject())) {
message = msg;
break;
}
}
if (message != null) {
Object con = message.getContent();
if (con instanceof Multipart) {
Multipart mp = (Multipart) con;
for(int i=0; i<mp.getCount(); i++) {
BodyPart part = mp.getBodyPart(i);
if (part.getContentType().toLowerCase().startsWith(HUPA_DATA_MIME_TYPE)) {
ObjectInputStream ois = new ObjectInputStream(part.getInputStream());
Object o = ois.readObject();
ois.close();
logger.info("Returning user preferences of type " + magicType + " from imap folder + " + folderName + " for user " + user);
return o;
}
}
}
}
}
return null;
}