From f743584c0902ef14307103b4de3472e9a06541b1 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 16 Oct 2017 13:42:48 +0200
Subject: [PATCH] OO-3069: clone updated event to initialize the immutable
 fields with the last data

---
 .../commons/calendar/manager/ICalFileCalendarManager.java   | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java b/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java
index 6b434b8585e..d302b09cf4e 100644
--- a/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java
+++ b/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java
@@ -354,7 +354,7 @@ public class ICalFileCalendarManager implements CalendarManager, InitializingBea
 	@Override
 	public boolean persistCalendar(Kalendar kalendar) {
 		Calendar calendar = buildCalendar(kalendar);
-		boolean success = writeCalendarFile(calendar,kalendar.getType(), kalendar.getCalendarID());
+		boolean success = writeCalendarFile(calendar, kalendar.getType(), kalendar.getCalendarID());
 		calendarCache.update(getKeyFor(kalendar.getType(), kalendar.getCalendarID()), kalendar);
 		return success;
 	}
@@ -1204,7 +1204,9 @@ public class ICalFileCalendarManager implements CalendarManager, InitializingBea
 		}
 
 		reloadedCal.removeEvent(kalendarEvent); // remove old event
-		reloadedCal.addEvent(kalendarEvent); // add changed event
+		// clone the event to initialize the immutable date used to control moving events
+		KalendarEvent clonedEvent = getKalendarEvent(getVEvent(kalendarEvent));
+		reloadedCal.addEvent(clonedEvent); // add changed event
 
 		boolean successfullyPersist = persistCalendar(reloadedCal);
 		// inform all controller about calendar change for reload
-- 
GitLab