From 82f53276da815c27d363b1855b02fefbffdca30d Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 26 Jul 2019 15:53:48 +0200
Subject: [PATCH] fetch proper project when sending email

---
 .../services/impl/CommentService.java          | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java b/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java
index 709b3560a5..3d17c570b6 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java
@@ -14,8 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
 import lcsb.mapviewer.common.ObjectUtils;
 import lcsb.mapviewer.model.Project;
 import lcsb.mapviewer.model.map.Comment;
-import lcsb.mapviewer.model.map.model.Model;
-import lcsb.mapviewer.model.map.model.ModelData;
+import lcsb.mapviewer.model.map.model.*;
 import lcsb.mapviewer.model.user.User;
 import lcsb.mapviewer.persist.dao.map.CommentDao;
 import lcsb.mapviewer.services.interfaces.*;
@@ -93,9 +92,20 @@ public class CommentService implements ICommentService {
     commentDao.add(comment);
 
     try {
+      Project project = submodel.getProject();
+      if (project == null) {
+        for (SubmodelConnection sc : submodel.getParentModels()) {
+          if (sc instanceof ModelSubmodelConnection) {
+            project = ((ModelSubmodelConnection) sc).getParentModel().getModel().getProject();
+            if (project != null) {
+              break;
+            }
+          }
+        }
+      }
+
       EmailSender emailSender = new EmailSender(configurationService);
-      emailSender.sendEmail("New comment appeard in the " + submodel.getProject().getProjectId(), content,
-          submodel.getProject().getNotifyEmail());
+      emailSender.sendEmail("New comment appeard in the " + project.getProjectId(), content, project.getNotifyEmail());
     } catch (MessagingException e) {
       logger.error("Problem with sending email.", e);
     }
-- 
GitLab