From 854ce645c20524676ab12b402947616a1ad81cc3 Mon Sep 17 00:00:00 2001 From: Gabriele Zigurella Date: Mon, 27 Feb 2023 12:08:06 +0100 Subject: [PATCH] fix: handle null User before MailEngine sends the mail --- .../tref/liferay/portos/bo/util/MailUtil.java | 72 ++++++++++--------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/MailUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/MailUtil.java index 7c17641e..a88aad46 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/MailUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/MailUtil.java @@ -161,37 +161,43 @@ public class MailUtil { intPraticaId = parereGeologo.getIntPraticaId(); IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); User tecnicoIstruttore = recuperaTecnicoIstruttore(intPratica); - _log.info("email tecnico istruttore=" + tecnicoIstruttore.getEmailAddress()); - String[] to = { tecnicoIstruttore.getEmailAddress() }; - String[] cc = new String[0]; - String[] ccn = new String[0]; - // recupero dati - String tipoPratica = StringPool.BLANK; - if (AzioniPraticheUtil.isDeposito(intPratica.getIntPraticaId())) { - tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, "tipo-pratica-01"); - } else if (AzioniPraticheUtil.isAutorizzazione(intPratica.getIntPraticaId())) { - tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, "tipo-pratica-02"); + if(tecnicoIstruttore != null){ + _log.info("email tecnico istruttore=" + tecnicoIstruttore.getEmailAddress()); + + String[] to = { tecnicoIstruttore.getEmailAddress() }; + String[] cc = new String[0]; + String[] ccn = new String[0]; + // recupero dati + String tipoPratica = StringPool.BLANK; + if (AzioniPraticheUtil.isDeposito(intPratica.getIntPraticaId())) { + tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, "tipo-pratica-01"); + } else if (AzioniPraticheUtil.isAutorizzazione(intPratica.getIntPraticaId())) { + tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, "tipo-pratica-02"); + } + Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); + Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); + Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), + territorio.getCodiceProvincia()); + JSONObject templateVariables = JSONFactoryUtil.createJSONObject(); + templateVariables.put("receiver", tecnicoIstruttore.getFullName()); + templateVariables.put("tipoPratica", tipoPratica); + templateVariables.put("tipoOggetto", "Risposta a Richiesta Parere Geologo"); + templateVariables + .put("dataInvio", + FastDateFormatFactoryUtil.getSimpleDateFormat("dd/MM/yyyy HH:mm").format( + parereGeologo.getDtCompilazione() != null ? parereGeologo.getDtCompilazione() + : new Date())); + templateVariables.put("praticaNum", intPratica.getNumeroProgetto()); + templateVariables.put("provincia", provincia.getProvincia()); + templateVariables.put("comune", comune.getDenominazione()); + String className = ParereGeologo.class.getName(); + long classPk = parereGeologoId; + MailManagerUtil.sendMailByTemplatName(className, classPk, "NOTIFICA-BO", to, cc, ccn, templateVariables, + null, serviceContext); + } else { + _log.warn("invioNotificaIstruttoreByGeologo - Tecnico istruttore mancante per pratica id=" + + intPraticaId); } - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), - territorio.getCodiceProvincia()); - JSONObject templateVariables = JSONFactoryUtil.createJSONObject(); - templateVariables.put("receiver", tecnicoIstruttore.getFullName()); - templateVariables.put("tipoPratica", tipoPratica); - templateVariables.put("tipoOggetto", "Risposta a Richiesta Parere Geologo"); - templateVariables - .put("dataInvio", - FastDateFormatFactoryUtil.getSimpleDateFormat("dd/MM/yyyy HH:mm").format( - parereGeologo.getDtCompilazione() != null ? parereGeologo.getDtCompilazione() - : new Date())); - templateVariables.put("praticaNum", intPratica.getNumeroProgetto()); - templateVariables.put("provincia", provincia.getProvincia()); - templateVariables.put("comune", comune.getDenominazione()); - String className = ParereGeologo.class.getName(); - long classPk = parereGeologoId; - MailManagerUtil.sendMailByTemplatName(className, classPk, "NOTIFICA-BO", to, cc, ccn, templateVariables, - null, serviceContext); } catch (Exception e) { _log.error("invioNotificaIstruttoreByGeologo - Errore invio mail al tecnico istruttore per pratica id=" + intPraticaId, e); @@ -248,8 +254,10 @@ public class MailUtil { User istruttoreUser = null; if (Validator.isNotNull(statusByUserId) && intPratica.getStatus() != WorkflowConstants.STATUS_DRAFT) { istruttoreUser = UserLocalServiceUtil.getUser(statusByUserId); - _log.info("istruttore pratica id=" + intPratica.getIntPraticaId() + ":" + istruttoreUser.getScreenName() - + " " + istruttoreUser.getEmailAddress()); + if(istruttoreUser != null){ + _log.info("istruttore pratica id=" + intPratica.getIntPraticaId() + ":" + istruttoreUser.getScreenName() + + " " + istruttoreUser.getEmailAddress()); + } } return istruttoreUser; }