This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 578cde0cc568ddc767fb96e814ef3d8708ffeb7e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Nov 7 14:43:47 2017 +0100 correction fuite connexion a la base de données pour l'envoie de mails --- .../pollen/services/service/FeedbackService.java | 1 + .../services/service/NotificationService.java | 23 ++++++++++ .../services/service/PollenServiceSupport.java | 5 +++ .../pollen/services/service/mail/EmailService.java | 49 +++++----------------- 4 files changed, 40 insertions(+), 38 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java index 8854e5ec..2b2b5337 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java @@ -52,6 +52,7 @@ public class FeedbackService extends PollenServiceSupport { feedbackEMail.getTos().addAll(mailsFeedbackList); emailService.send(feedbackEMail); + commit(); return true; } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java index 074c6198..763db9a8 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java @@ -80,6 +80,7 @@ public class NotificationService extends PollenServiceSupport { UserAccountCreatedEmail email = emailService.newUserAccountCreatedEmail(user); email.addTo(user.getEmail()); emailService.send(email); + commit(); } } @@ -89,6 +90,7 @@ public class NotificationService extends PollenServiceSupport { UserAccountCreatedFromProviderEmail email = emailService.newUserAccountCreatedFromProviderEmail(user, credential); email.addTo(user.getEmail()); emailService.send(email); + commit(); } } @@ -97,6 +99,7 @@ public class NotificationService extends PollenServiceSupport { ResendValidationEmail email = emailService.newUserResendValidationEmail(user); email.addTo(user.getEmail()); emailService.send(email); + commit(); } public void onUserEdited(PollenUser user) { @@ -105,6 +108,7 @@ public class NotificationService extends PollenServiceSupport { UserAccountEditedEmail email = emailService.newUserAccountEditedEmail(user); email.addTo(user.getEmail()); emailService.send(email); + commit(); } } @@ -114,6 +118,7 @@ public class NotificationService extends PollenServiceSupport { UserAccountDeletedEmail email = emailService.newUserAccountDeletedEmail(user); email.addTo(user.getEmail()); emailService.send(email); + commit(); } } @@ -123,6 +128,7 @@ public class NotificationService extends PollenServiceSupport { UserAccountPasswordChangedEmail email = emailService.newUserAccountPasswordChangedEmail(user); email.addTo(user.getEmail()); emailService.send(email); + commit(); } } @@ -131,6 +137,7 @@ public class NotificationService extends PollenServiceSupport { UserAccountEmailValidatedEmail email = emailService.newUserAccountEmailValidatedEmail(user); email.addTo(user.getEmail()); emailService.send(email); + commit(); } public void onUserLostPasswordAsked(PollenUser user, String newPassword) { @@ -139,6 +146,7 @@ public class NotificationService extends PollenServiceSupport { LostPasswordEmail email = emailService.newLostPasswordEmail(user, newPassword); email.addTo(user.getEmail()); emailService.send(email); + commit(); } } @@ -199,6 +207,7 @@ public class NotificationService extends PollenServiceSupport { emailService.send(mail); }); } + commit(); } @@ -212,6 +221,7 @@ public class NotificationService extends PollenServiceSupport { mail.addTo(email); emailService.send(mail); } + commit(); } } @@ -224,6 +234,7 @@ public class NotificationService extends PollenServiceSupport { PollClosedEmail email = emailService.newPollClosedEmail(poll); //email.addTo(poll.getCreator().getEmail()); emailService.send(email); + commit(); } public void onPollReopened(Poll poll) { @@ -236,6 +247,7 @@ public class NotificationService extends PollenServiceSupport { ChoiceAddedEmail email = emailService.newChoiceAddedEmail(poll, choice); email.addTo(poll.getCreator().getEmail()); emailService.send(email); + commit(); } } @@ -253,6 +265,7 @@ public class NotificationService extends PollenServiceSupport { CommentAddedEmail email = emailService.newCommentAddedEmail(poll, comment); email.addTo(poll.getCreator().getEmail()); emailService.send(email); + commit(); } } @@ -262,6 +275,7 @@ public class NotificationService extends PollenServiceSupport { CommentEditedEmail email = emailService.newCommentEditedEmail(poll, comment); email.addTo(poll.getCreator().getEmail()); emailService.send(email); + commit(); } } @@ -271,6 +285,7 @@ public class NotificationService extends PollenServiceSupport { CommentDeletedEmail email = emailService.newCommentDeletedEmail(poll, comment); email.addTo(poll.getCreator().getEmail()); emailService.send(email); + commit(); } } @@ -281,6 +296,7 @@ public class NotificationService extends PollenServiceSupport { VoteAddedEmail voteAddedEmail = emailService.newVoteAddedEmail(poll, vote); voteAddedEmail.addTo(poll.getCreator().getEmail()); emailService.send(voteAddedEmail); + commit(); } } @@ -291,6 +307,7 @@ public class NotificationService extends PollenServiceSupport { VoteEditedEmail voteEditedEmail = emailService.newVoteEditedEmail(poll, vote); voteEditedEmail.addTo(poll.getCreator().getEmail()); emailService.send(voteEditedEmail); + commit(); } } @@ -301,6 +318,7 @@ public class NotificationService extends PollenServiceSupport { VoteDeletedEmail voteDeletedEmail = emailService.newVoteDeletedEmail(poll, vote); voteDeletedEmail.addTo(poll.getCreator().getEmail()); emailService.send(voteDeletedEmail); + commit(); } } @@ -315,6 +333,7 @@ public class NotificationService extends PollenServiceSupport { email.addTo(pollenPrincipal.getEmail()); emailService.send(email); }); + commit(); } @@ -324,6 +343,7 @@ public class NotificationService extends PollenServiceSupport { pollEndReminderEmail.addTo(poll.getCreator().getEmail()); emailService.send(pollEndReminderEmail); + commit(); } public void onAddCommentReport(Poll poll, Comment comment, Report report) { @@ -345,6 +365,7 @@ public class NotificationService extends PollenServiceSupport { commentReportForAdminEmail.addTo(admin.getEmail()); emailService.send(commentReportForAdminEmail); }); + commit(); } @@ -381,6 +402,7 @@ public class NotificationService extends PollenServiceSupport { choiceReportForAdminEmail.addTo(admin.getEmail()); emailService.send(choiceReportForAdminEmail); }); + commit(); } @@ -403,6 +425,7 @@ public class NotificationService extends PollenServiceSupport { pollReportForAdminEmail.addTo(admin.getEmail()); emailService.send(pollReportForAdminEmail); }); + commit(); } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java index 586a2947..1d1dce13 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java @@ -31,6 +31,7 @@ import org.chorem.pollen.persistence.PollenPersistenceContext; import org.chorem.pollen.persistence.entity.ChildFavoriteListTopiaDao; import org.chorem.pollen.persistence.entity.ChoiceTopiaDao; import org.chorem.pollen.persistence.entity.CommentTopiaDao; +import org.chorem.pollen.persistence.entity.EmailToResendTopiaDao; import org.chorem.pollen.persistence.entity.FavoriteListMemberTopiaDao; import org.chorem.pollen.persistence.entity.FavoriteListTopiaDao; import org.chorem.pollen.persistence.entity.LoginProviderTopiaDao; @@ -251,6 +252,10 @@ public abstract class PollenServiceSupport implements PollenService { return getPersistenceContext().getLoginProviderDao(); } + protected EmailToResendTopiaDao getEmailToResendDao() { + return getPersistenceContext().getEmailToResendDao(); + } + public void commit() { getPersistenceContext().commit(); } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java index aae2777f..78517ad4 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java @@ -32,12 +32,9 @@ import org.apache.commons.logging.LogFactory; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail; -import org.chorem.pollen.persistence.PollenTopiaApplicationContext; -import org.chorem.pollen.persistence.PollenTopiaPersistenceContext; import org.chorem.pollen.persistence.entity.Choice; import org.chorem.pollen.persistence.entity.Comment; import org.chorem.pollen.persistence.entity.EmailToResend; -import org.chorem.pollen.persistence.entity.EmailToResendImpl; import org.chorem.pollen.persistence.entity.EmailToResendTopiaDao; import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.PollenPrincipal; @@ -51,8 +48,6 @@ import org.chorem.pollen.services.bean.PollenEntityId; import org.chorem.pollen.services.bean.PollenUserBean; import org.chorem.pollen.services.config.PollenServicesConfig; import org.chorem.pollen.services.service.PollenServiceSupport; -import org.nuiton.topia.persistence.BeanTopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import java.io.StringWriter; import java.util.Arrays; @@ -61,7 +56,6 @@ import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Set; import java.util.TimeZone; @@ -322,7 +316,7 @@ public class EmailService extends PollenServiceSupport { public void resendEmails() { - EmailToResendTopiaDao emailToResendDao = getPersistenceContext().getEmailToResendDao(); + EmailToResendTopiaDao emailToResendDao = getEmailToResendDao(); List<EmailToResend> allEmailsToResend = emailToResendDao.findAll(); for (EmailToResend emailToResend : allEmailsToResend) { @@ -354,37 +348,16 @@ public class EmailService extends PollenServiceSupport { if (mail.isRecipientProvided()) { - Runnable emailSendingTask = () -> { - String subject = mail.getSubject(); - String body = getBody(mail); - Set<String> tos = mail.getTos(); - Set<String> bccs = mail.getBccs(); - - try { - doSend(subject, body, tos, bccs); - - } catch (EmailException e) { - - if (log.isErrorEnabled()) { - log.error("Error while sending an email, add it to the email to resend", e); - } - - EmailToResend emailToResend = new EmailToResendImpl(); - emailToResend.setSubject(subject); - emailToResend.setBody(body); - emailToResend.setTos(StringUtils.join(tos, RECIPIENT_SEPARATOR)); - emailToResend.setBccs(StringUtils.join(bccs, RECIPIENT_SEPARATOR)); - - Map<String, String> topiaProperties = getPollenServiceConfig().getTopiaProperties(); - BeanTopiaConfiguration topiaConfiguration = new TopiaConfigurationBuilder().readMap(topiaProperties); - try (PollenTopiaApplicationContext pollenTopiaApplicationContext = new PollenTopiaApplicationContext(topiaConfiguration)) { - PollenTopiaPersistenceContext pollenTopiaPersistenceContext = pollenTopiaApplicationContext.newPersistenceContext(); - pollenTopiaPersistenceContext.getEmailToResendDao().create(emailToResend); - pollenTopiaPersistenceContext.commit(); - } - } - }; - new Thread(emailSendingTask).start(); + String subject = mail.getSubject(); + String body = getBody(mail); + Set<String> tos = mail.getTos(); + Set<String> bccs = mail.getBccs(); + + EmailToResend emailToResend = getEmailToResendDao().create(); + emailToResend.setSubject(subject); + emailToResend.setBody(body); + emailToResend.setTos(StringUtils.join(tos, RECIPIENT_SEPARATOR)); + emailToResend.setBccs(StringUtils.join(bccs, RECIPIENT_SEPARATOR)); } else { if (log.isErrorEnabled()) { -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.