{
Config config = Config.getConfig();
if (emailId==null || emailId.getVolume()==null || emailId.getUniqueID()==null)
throw new MessageStoreException("assertion failure: null emailID, volume or uniqueId",logger);
if(emailId.getUniqueID() == null)
throw new MessageStoreException("insert message was found to have a null message id.", logger);
logger.debug("insertMessage {"+emailId + "}");
if (!isDefaultPassPhraseModified())
throw new MessageStoreException("failed to archive message. encryption password is not set. {"+emailId+"}",logger);
File messageFile = getNewFile(emailId.getVolume(),emailId.getUniqueID(),messageFileExtension);
try {
email.setHeader("X-MailArchiva-Archive-Date", DateUtil.convertDatetoString(new Date()));
} catch (MessagingException me) {
logger.error("failed to set archive date");
}
try {
writeEmail(email,messageFile,true,true,true);
} catch (Exception e) {
messageFile.delete();
try {
writeCorruptedEmail(email, getQuarantineFile(emailId.getUniqueID()+".eml"));
} catch (Exception e2) {
throw new MessageStoreException("failed to write corrupted email to quarantine {"+emailId+"}",e2,logger);
}
}
return true;
}