private void saveToCache(MimeMessage[] messages) { for (int i = 0; i < messages.length; i++) { Email email = new Email(); try { email.setMessageID(messages[i].getMessageID()); HashSet<String> from = new HashSet<String>(); if (messages[i].getFrom() != null) { from = getEmailAdress(messages[i].getFrom()); } email.setFrom(from); HashSet<Email> replies = new HashSet<Email>(); if (messages[i].getHeader("In-Reply-To") != null) { String inReplyTo = extractReplyID(messages[i].getHeader("In-Reply-To")[0]); email.setInReplyTo(inReplyTo); replies.add(emailData.get(inReplyTo)); } if (messages[i].getHeader("References") != null) { HashSet<Email> referenceList = getEmailAdress(messages[i].getHeader("References")[0]); email.setReferences(referenceList); replies.addAll(referenceList); } email.setReplies(replies); if (messages[i].getAllRecipients() != null) { email.setAllRecipients(getEmailAdress(messages[i].getAllRecipients())); } email.setSubject(messages[i].getSubject()); // email.put("content", getText(messages[i])); email.setSentDate(messages[i].getSentDate()); emailData.put(email.getMessageID(), email); // recursiveProcessReplies(email); emailCount++; } catch (MessagingException e) { emailLevelErrors++; // System.out.println("MessagingException on saveToDB: getContents: " + e.getMessage()); } } }