From f4b2797ac32719b616e5863598839b2f8d76c00f Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 7 Jun 2017 09:41:33 +0200
Subject: [PATCH] OO-2808: make the read item method robust against empty file

---
 .../olat/modules/webFeed/managers/FeedManagerImpl.java | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java b/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
index 2ce5a11370b..5e8e9fc3896 100644
--- a/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
+++ b/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
@@ -45,6 +45,7 @@ import org.olat.core.gui.media.MediaResource;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.AssertException;
+import org.olat.core.logging.OLATRuntimeException;
 import org.olat.core.logging.OLog;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.Encoder;
@@ -579,14 +580,19 @@ public class FeedManagerImpl extends FeedManager {
 	 * @param container
 	 * @return The item
 	 */
+	@Override
 	public Item loadItem(VFSItem container) {
 		VFSLeaf itemLeaf = null;
 		Item item = null;
 
 		if (container != null) {
 			itemLeaf = (VFSLeaf) container.resolve(ITEM_FILE_NAME);
-			if (itemLeaf != null) {
-				item = (Item) XStreamHelper.readObject(xstream, itemLeaf.getInputStream());
+			if (itemLeaf != null && itemLeaf.getSize() > 0) {
+				try {
+					item = (Item) XStreamHelper.readObject(xstream, itemLeaf.getInputStream());
+				} catch (OLATRuntimeException e) {
+					log.error("Corrupted or empty feed item:" + itemLeaf, e);
+				}
 			}
 		}
 		return item;
-- 
GitLab