This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 0ef952767ecc4c21fbfe24159a7667bf0fecb939 Author: Kevin Morin <morin@codelutin.com> Date: Thu Jan 22 18:28:03 2015 +0100 correction edi et gammes vides --- .../services/service/EmailServiceImpl.java | 42 +++++++++++++--------- .../ui/swing/actions/SaveDemandeAction.java | 2 +- .../demande/replies/DemandRepliesUIHandler.java | 12 +++++-- .../i18n/faxtomail-ui-swing_fr_FR.properties | 1 + .../faxtomail/web/action/DemandDetailAction.java | 12 +++++-- .../faxtomail/web/job/MailFilterJob.java | 2 +- .../i18n/faxtomail-ui-web_fr_FR.properties | 1 + faxtomail-ui-web/src/main/resources/log4j2.xml | 9 ++--- pom.xml | 2 +- 9 files changed, 54 insertions(+), 29 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 7f593ff..dda7c27 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -86,7 +86,6 @@ import org.nuiton.util.beans.BinderFactory; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; import org.xhtmlrenderer.pdf.ITextRenderer; -import org.xml.sax.SAXException; import javax.activation.DataHandler; import javax.activation.DataSource; @@ -97,11 +96,7 @@ import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; import java.io.BufferedWriter; -import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; @@ -1432,7 +1427,17 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe String headerLine = headerLines.nextElement(); emailSource.append(headerLine).append("\n"); } - String originalContent = IOUtils.toString(message.getRawInputStream(), charset); + InputStream inputStream; + try { + inputStream = message.getRawInputStream(); + + } catch (Exception e) { + if (log.isWarnEnabled()) { + log.warn("error while getting the raw input stream"); + } + inputStream = message.getInputStream(); + } + String originalContent = IOUtils.toString(inputStream, charset); emailSource.append("\n").append(originalContent); OriginalEmail originalEmail = getPersistenceContext().getOriginalEmailDao().newInstance(); @@ -1888,21 +1893,26 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe } else if (bp.isMimeType("message/*")) { decomposingForwardedEmail++; - String content = decomposeMultipartEmail(attachments, bp, decomposingForwardedEmail); - if (content != null) { - //remove tattachement if exists, to avoid having twice the mail content in the attachments - String fileName = t("faxtomail.email.content.attachment.forwardedFileName", decomposingForwardedEmail) + ".pdf"; - for (Attachment a : attachments) { - if (fileName.equals(a.getOriginalFileName())) { - attachments.remove(a); - break; - } + Attachment attachment = null; + String fileName = t("faxtomail.email.content.attachment.forwardedFileName", decomposingForwardedEmail) + ".pdf"; + try { + String content = decomposeMultipartEmail(attachments, bp, decomposingForwardedEmail); + if (StringUtils.isNotBlank(content)) { + attachment = convertHTMLToPdf(attachments, content, fileName); } - Attachment attachment = convertHTMLToPdf(attachments, content, fileName); + } catch (Exception e) { + Charset charset = FaxToMailServiceUtils.getCharset(bp); + String content = IOUtils.toString(bp.getInputStream(), charset); + if (StringUtils.isNotBlank(content)) { + attachment = convertTextToPdf(content, fileName); + } + } + if (attachment != null) { attachments.add(attachment); } + // else, this is an attachment } else { String fileName = bp.getFileName(); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java index 71b4558..38f7d7d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java @@ -146,7 +146,7 @@ public class SaveDemandeAction extends AbstractFaxToMailAction<DemandeUIModel, D // reload range rows with ids RangeTableModel rangeTableModel = (RangeTableModel) getUI().getRangeTable().getModel(); model.recomputeValidRangeRows(); - rangeTableModel.setRows(model.getValidRangeRowModels()); + rangeTableModel.setRows(new ArrayList<RangeRowModel>(model.getValidRangeRowModels())); getModel().setModify(false); monitor.clearModified(); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java index 0484670..4cf08d1 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/replies/DemandRepliesUIHandler.java @@ -262,9 +262,15 @@ public class DemandRepliesUIHandler extends AbstractToolbarPopupHandler<DemandeU } else { String fileName = bp.getFileName(); if (fileName == null) { - fileName = bp.getHeader("Content-ID")[0]; - // remove the guillemets between the id - fileName = fileName.replaceFirst("^<(.*)>$", "$1"); + String[] header = bp.getHeader("Content-ID"); + if (header != null && header.length > 0) { + fileName = header[0]; + // remove the guillemets between the id + fileName = fileName.replaceFirst("^<(.*)>$", "$1"); + } + } + if (fileName == null) { + fileName = t("faxtomail.email.content.attachment.unnamed", j); } fileName = MimeUtility.decodeText(fileName); if (log.isDebugEnabled()) { diff --git a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties index 55f36d3..4d00e1a 100644 --- a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties +++ b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties @@ -219,6 +219,7 @@ faxtomail.demandeList.table.header.waitingState=État attente faxtomail.demandeList.table.header.waitingState.tip=État attente faxtomail.demandeList.title=Liste des éléments faxtomail.demandeList.totalCount=Nombre de demandes \: +faxtomail.email.content.attachment.unnamed=Pièce-jointe %s faxtomail.historyList.action.tip=Historique faxtomail.historyList.text=Historique (%s) faxtomail.historyList.title=Historique diff --git a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java index 3000785..8a0ac53 100644 --- a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java +++ b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/DemandDetailAction.java @@ -412,9 +412,15 @@ public class DemandDetailAction extends FaxToMailActionSupport { } else { String fileName = bp.getFileName(); if (fileName == null) { - fileName = bp.getHeader("Content-ID")[0]; - // remove the guillemets between the id - fileName = fileName.replaceFirst("^<(.*)>$", "$1"); + String[] header = bp.getHeader("Content-ID"); + if (header != null && header.length > 0) { + fileName = header[0]; + // remove the guillemets between the id + fileName = fileName.replaceFirst("^<(.*)>$", "$1"); + } + } + if (fileName == null) { + fileName = t("faxtomail.email.content.attachment.unnamed", j); } ByteArrayOutputStream fos = new ByteArrayOutputStream(); diff --git a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java index 0375a0b..faca3a0 100644 --- a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java +++ b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java @@ -184,7 +184,7 @@ public class MailFilterJob extends AbstractFaxToMailJob { checkEmailsOfFolder(account, inbox); } catch (Exception e) { - log.error("Error while getting emails from the mailbox " + account.getHost(), e); + log.error("Error while getting emails from the mailbox " + account.getLogin() + "@" + account.getHost(), e); } finally { close(inbox); diff --git a/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties b/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties index 8bdf333..4ed536f 100644 --- a/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties +++ b/faxtomail-ui-web/src/main/resources/i18n/faxtomail-ui-web_fr_FR.properties @@ -39,6 +39,7 @@ faxtomail.demandDetail.noAttachmentForId=Aucune pièce jointe ne correspond à l faxtomail.demandDetail.noDemandForId=Aucun élément ne correspond à l'identifiant %s. faxtomail.email.content.attachment.htmlFileName=contenu html du mail faxtomail.email.content.attachment.plainFileName=contenu texte du mail +faxtomail.email.content.attachment.unnamed=Pièce-jointe %s faxtomail.email.object.noClient=Client non trouvé faxtomail.email.projectReference.default=Votre demande du %s faxtomail.email.subject.re=Re \: %s diff --git a/faxtomail-ui-web/src/main/resources/log4j2.xml b/faxtomail-ui-web/src/main/resources/log4j2.xml index 331ec19..d036632 100644 --- a/faxtomail-ui-web/src/main/resources/log4j2.xml +++ b/faxtomail-ui-web/src/main/resources/log4j2.xml @@ -30,8 +30,8 @@ <PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss} %5p (%c:%L) - %m%n" /> </Console> - <!-- RollingFile name="File" fileName="${sys:user.home}/.faxtomail/faxtomail.log" - filePattern="${sys:user.home}/.faxtomail/faxtomail-%d{yyyyMMdd}-%i.log"> + <RollingFile name="File" fileName="${sys:user.home}/.faxtomail/faxtomail-ui-web.log" + filePattern="${sys:user.home}/.faxtomail/faxtomail-ui-web-%d{yyyyMMdd}-%i.log"> <PatternLayout> <pattern>%d %5p (%c:%L) - %m%n</pattern> </PatternLayout> @@ -40,7 +40,7 @@ <SizeBasedTriggeringPolicy size="10 MB"/> </Policies> <DefaultRolloverStrategy max="5"/> - </RollingFile--> + </RollingFile> </Appenders> <Loggers> @@ -53,7 +53,8 @@ <Root level="error"> <AppenderRef ref="Console" /> - <!-- AppenderRef ref="File" /--> + <AppenderRef ref="File" /> </Root> + </Loggers> </Configuration> diff --git a/pom.xml b/pom.xml index ce01169..dd250e2 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ <h2Version>1.3.176</h2Version> <guavaVersion>18.0</guavaVersion> - <jaxxVersion>2.19-SNAPSHOT</jaxxVersion> + <jaxxVersion>2.22</jaxxVersion> <!-- do not upgrade to 1.6.5-1 --> <swingXVersion>1.6.4</swingXVersion> <xworkVersion>2.3.16.3</xworkVersion> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.