From a6d2502ebbe620d5348a7e6ba7a1d7ac935d79f6 Mon Sep 17 00:00:00 2001
From: Andreas Svanberg <andreass@dsv.su.se>
Date: Fri, 3 May 2024 15:11:13 +0200
Subject: [PATCH] 3381 Fix NPE when supervisors fill in individual criteria
 before final thesis is uploaded

---
 .../su/dsv/scipro/grading/SendToExaminer.java   | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/view/src/main/java/se/su/dsv/scipro/grading/SendToExaminer.java b/view/src/main/java/se/su/dsv/scipro/grading/SendToExaminer.java
index 3ccf7680a8..020b225639 100644
--- a/view/src/main/java/se/su/dsv/scipro/grading/SendToExaminer.java
+++ b/view/src/main/java/se/su/dsv/scipro/grading/SendToExaminer.java
@@ -264,11 +264,20 @@ public class SendToExaminer extends GenericPanel<Project> {
                 .map(instant -> instant.atZone(ZoneId.systemDefault()))
                 .map(ZonedDateTime::toLocalDate);
 
-        if (seminarDate.isPresent() && seminarDate.get().isAfter(finalThesis.getUploadDate())) {
-            return seminarDate.get();
-        }
-        else {
+        boolean hasFinalThesis = finalThesis != null;
+        boolean hasSeminarDate = seminarDate.isPresent();
+        if (hasFinalThesis && hasSeminarDate) {
+            if (finalThesis.getUploadDate().isAfter(seminarDate.get())) {
+                return finalThesis.getUploadDate();
+            } else {
+                return seminarDate.get();
+            }
+        } else if (hasFinalThesis) {
             return finalThesis.getUploadDate();
+        } else if (hasSeminarDate) {
+            return seminarDate.get();
+        } else {
+            return null;
         }
     }