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 3036c31895ac6b48d8299a33fe27135658339524 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 3 15:24:12 2017 +0100 fixes #8912 Erreur Java Heap à l'ouverture de certains eléments --- .../faxtomail/services/FaxToMailServiceUtils.java | 20 +++---- .../services/service/EmailServiceTest.java | 66 +++++++++++----------- 2 files changed, 41 insertions(+), 45 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java index 45bf30e..9568b55 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java @@ -46,9 +46,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -62,7 +60,7 @@ public class FaxToMailServiceUtils { */ private static final Log log = LogFactory.getLog(FaxToMailServiceUtils.class); - public static final Pattern IMG_SRC_PATTERN = Pattern.compile("src=([\"'])(.*?)([\"'])"); + public static final Pattern IMG_SRC_PATTERN = Pattern.compile("src=([\"'])(.+?)([\"'])"); public static String addFaxDomainToFaxNumber(String faxNumber, MailFolder folder) { while (!folder.isUseCurrentLevelFaxDomain() @@ -133,14 +131,10 @@ public class FaxToMailServiceUtils { * @throws URIException */ public static String encodeImageSourcesInEmail(String emailContent, String defaultImage) throws URIException { - List<String> imgSrcUrls = new ArrayList<>(); - + StringBuffer emailContentBuffer = new StringBuffer(); Matcher imgSrcMatcher = IMG_SRC_PATTERN.matcher(emailContent); while (imgSrcMatcher.find()) { - imgSrcUrls.add(imgSrcMatcher.group(2)); - } - - for (String imgSrcUrl : imgSrcUrls) { + String imgSrcUrl = imgSrcMatcher.group(2); String correctImgUrl = URIUtil.encodeQuery(imgSrcUrl); try { @@ -153,14 +147,14 @@ public class FaxToMailServiceUtils { log.error("the url of the image " + imgSrcUrl + " is not correct, replace it with the default image"); } - GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); correctImgUrl = ge.isHeadlessInstance() ? "" : defaultImage; } - emailContent = emailContent.replace(imgSrcUrl, correctImgUrl); + imgSrcMatcher.appendReplacement(emailContentBuffer, correctImgUrl); } - - return emailContent; + imgSrcMatcher.appendTail(emailContentBuffer); + return emailContentBuffer.toString(); } public static String getDecodedSubject(String subject) throws UnsupportedEncodingException { diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index 0f434aa..64fbb40 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -36,7 +36,6 @@ import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.MailFolderTopiaDao; import com.franciaflex.faxtomail.persistence.entities.Range; import com.franciaflex.faxtomail.persistence.entities.SearchFilter; -import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import com.google.common.io.Files; @@ -51,7 +50,10 @@ import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; +import javax.mail.Address; import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.io.File; import java.io.IOException; @@ -343,35 +345,35 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { } -// @Test -// public void testSendPdfBlanc() { -// testSendEmail(""); -// } -// -// protected void testSendEmail(String emailId) { -// try { -// final String smtpUser = getApplicationConfig().getSmtpUser(); -// final String password = getApplicationConfig().getSmtpPassword(); -// -// Properties properties = new Properties(); -// // set the mail.mime.address.strict to false to avoid -// // javax.mail.internet.AddressException: Domain contains illegal character errors when recipients contains [] -// properties.setProperty("mail.mime.address.strict", "false"); -// -// Session session = Session.getInstance(properties); -// File email = new File("src/test/resources/emails/" + emailId + ".eml"); -// String emailContent = FileUtils.readFileToString(email); -// MimeMessage message = MimeMessageUtils.createMimeMessage(session, emailContent); -// -// Transport tr = session.getTransport("smtps"); -// tr.connect(getApplicationConfig().getSmtpHost(), getApplicationConfig().getSmtpPort(), smtpUser, password); -// message.saveChanges(); // don't forget this -// -// tr.sendMessage(message, new Address[]{new InternetAddress("fx.savFFEtest@franciaflex.com") }); -// tr.close(); -// -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } + @Test + public void testSendPdfBlanc() { + testSendEmail("test-666"); + } + + protected void testSendEmail(String emailId) { + try { + final String smtpUser = getApplicationConfig().getSmtpUser(); + final String password = getApplicationConfig().getSmtpPassword(); + + Properties properties = new Properties(); + // set the mail.mime.address.strict to false to avoid + // javax.mail.internet.AddressException: Domain contains illegal character errors when recipients contains [] + properties.setProperty("mail.mime.address.strict", "false"); + + Session session = Session.getInstance(properties); + File email = new File("src/test/resources/emails/" + emailId + ".eml"); + String emailContent = FileUtils.readFileToString(email); + MimeMessage message = MimeMessageUtils.createMimeMessage(session, emailContent); + + Transport tr = session.getTransport("smtps"); + tr.connect(getApplicationConfig().getSmtpHost(), getApplicationConfig().getSmtpPort(), smtpUser, password); + message.saveChanges(); // don't forget this + + tr.sendMessage(message, new Address[]{new InternetAddress("km@kevinmorin.net") }); + tr.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.