This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 48a02100e8203314a8329c01774d20d0c9d35106 Author: jcouteau <couteau@codelutin.com> Date: Fri Sep 28 11:14:22 2018 +0200 refs #10098 : generate PDF pages one file opening per page and flush every page generation --- .../faxtomail/services/service/EmailServiceImpl.java | 5 ++++- .../com/franciaflex/faxtomail/web/job/MailFilterJob.java | 13 ++++++++----- 2 files changed, 12 insertions(+), 6 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 dfe02f0a..c41a64bb 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 @@ -2470,7 +2470,10 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe generatedPDFPage = dao.create(generatedPDFPage); attachment.addGeneratedPDFPages(generatedPDFPage); - //getPersistenceContext().getAttachmentDao().update(attachment); + + //force flush to limit RAM overhead + getPersistenceContext().getHibernateSupport().getHibernateSession().flush(); + } catch (IOException e) { log.error("Error while writing image", e); } 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 2e5ba6cb..d96cfcd9 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 @@ -456,14 +456,17 @@ public class MailFilterJob extends AbstractFaxToMailJob { for (Attachment attachment:attachments) { if (isFileAPDF(attachment.getOriginalFile())) { - //Pre-generate PDF rendering + //Open file once to get page number + int pageNumber; try (PDDocument pdDocument = PDDocument.load(attachment.getOriginalFile().getContent())) { - PDFRenderer renderer = new PDFRenderer(pdDocument); - - for (int i = 0; i < pdDocument.getNumberOfPages(); i++) { + pageNumber = pdDocument.getNumberOfPages(); + } + //Open file once per page to limit memory overhead + for (int i = 0; i < pageNumber; i++) { + try (PDDocument pdDocument = PDDocument.load(attachment.getOriginalFile().getContent())) { + PDFRenderer renderer = new PDFRenderer(pdDocument); BufferedImage pageImage = renderer.renderImage(i); - emailService.createGeneratedPDFPage(attachment, pageImage); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.