From 788e8fd5fbe56b0c307caa13a5bb997816725927 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 19 Jan 2016 08:21:07 +0100
Subject: [PATCH] OO-1845: catch error on single calendar

---
 .../olat/commons/calendar/ICalServlet.java    | 27 +++++++++++--------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/olat/commons/calendar/ICalServlet.java b/src/main/java/org/olat/commons/calendar/ICalServlet.java
index dc076565c63..bde343b3375 100644
--- a/src/main/java/org/olat/commons/calendar/ICalServlet.java
+++ b/src/main/java/org/olat/commons/calendar/ICalServlet.java
@@ -43,6 +43,7 @@ import org.olat.commons.calendar.model.CalendarUserConfiguration;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.id.Identity;
+import org.olat.core.logging.OLATRuntimeException;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.i18n.I18nManager;
@@ -233,17 +234,21 @@ public class ICalServlet extends HttpServlet {
 	}
 	
 	private void outputCalendar(CalendarFileInfos fileInfos, Writer out) throws IOException {
-		CalendarManager calendarManager = CoreSpringFactory.getImpl(CalendarManager.class);
-		Calendar calendar = calendarManager.readCalendar(fileInfos.getCalendarFile());
-		updateUrlProperties(calendar);
-		
-		String prefix = fileInfos.getType() + "-" + fileInfos.getCalendarId() + "-";
-		updateUUID(calendar, prefix);
-		
-		ComponentList events = calendar.getComponents();
-		for (final Iterator<?> i = events.iterator(); i.hasNext();) {
-			String event = i.next().toString();
-			out.write(event);
+		try {
+			CalendarManager calendarManager = CoreSpringFactory.getImpl(CalendarManager.class);
+			Calendar calendar = calendarManager.readCalendar(fileInfos.getCalendarFile());
+			updateUrlProperties(calendar);
+			
+			String prefix = fileInfos.getType() + "-" + fileInfos.getCalendarId() + "-";
+			updateUUID(calendar, prefix);
+			
+			ComponentList events = calendar.getComponents();
+			for (final Iterator<?> i = events.iterator(); i.hasNext();) {
+				String event = i.next().toString();
+				out.write(event);
+			}
+		} catch (IOException | OLATRuntimeException e) {
+			log.error("", e);
 		}
 	}
 	
-- 
GitLab