From dbb6a5f4d7d448780fb73a222ebcaa10c5f64d99 Mon Sep 17 00:00:00 2001
From: aboeckle <alexander.boeckle@frentix.com>
Date: Thu, 12 Mar 2020 08:11:32 +0100
Subject: [PATCH] OO-4402: Fixed NPE with empty dates

---
 .../ui/AccessConfigurationController.java          | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java b/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java
index c25c69f6465..4059a7aabbd 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java
@@ -413,8 +413,20 @@ public class AccessConfigurationController extends FormBasicController {
 					Date bFrom = confControllerB.getLink().getValidFrom();
 					Date bTo = confControllerB.getLink().getValidTo();
 					
+					if (aFrom == null || aTo == null || bFrom == null || bTo == null) {
+						// Two unlimited bookin methods
+						if (aFrom == null && aTo == null && bFrom == null && bTo == null) {
+							overlap = true;
+						// One unlimited method and one with start or end or both
+						} else if (aFrom == null && aTo == null && (bFrom != null || bTo != null)) {
+							overlap = true;
+						} else if (aFrom == null && aTo != null && bFrom != null && aTo.compareTo(bFrom) >= 0) {
+							overlap = true;
+						}
+					}
+					
 					// Options: Dates cross each other or on date range is within another
-					if ((aFrom.compareTo(bFrom) <= 0 &&
+					else if ((aFrom.compareTo(bFrom) <= 0 &&
 							aTo.compareTo(bTo) <= 0 && 
 							bFrom.compareTo(aTo) <= 0) ||
 						(aFrom.compareTo(bFrom) <= 0) &&
-- 
GitLab