From 31fd7cd18c57803d193accb2145ad3ca9f6774d8 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 22 Oct 2013 08:37:26 +0200
Subject: [PATCH] OO-827: prevent red screen if the media is not available
 (only show it's missing)

---
 .../olat/modules/webFeed/managers/FeedManagerImpl.java    | 8 ++++++--
 .../org/olat/modules/webFeed/ui/FeedFormController.java   | 7 ++++++-
 2 files changed, 12 insertions(+), 3 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 3becd59efc5..4f1ad184b3f 100644
--- a/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
+++ b/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
@@ -1019,7 +1019,9 @@ public class FeedManagerImpl extends FeedManager {
 			item = item.resolve(itemId);
 			item = item.resolve(MEDIA_DIR);
 			item = item.resolve(fileName);
-			mediaResource = new VFSMediaResource((VFSLeaf) item);
+			if(item instanceof VFSLeaf) {
+				mediaResource = new VFSMediaResource((VFSLeaf)item);
+			}
 		} catch (NullPointerException e) {
 			log.debug("Media resource could not be created from file: ", fileName);
 		}
@@ -1037,7 +1039,9 @@ public class FeedManagerImpl extends FeedManager {
 		try {
 			VFSItem item = getFeedMediaContainer(feed);
 			item = item.resolve(fileName);
-			mediaResource = new VFSMediaResource((VFSLeaf) item);
+			if(item instanceof VFSLeaf) {
+				mediaResource = new VFSMediaResource((VFSLeaf)item);
+			}
 		} catch (NullPointerException e) {
 			log.debug("Media resource could not be created from file: ", fileName);
 		}
diff --git a/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java b/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java
index 21305648c39..b984d74e2f8 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/FeedFormController.java
@@ -218,11 +218,16 @@ class FeedFormController extends FormBasicController {
 	 * @param newResource
 	 */
 	private void setImage(MediaResource newResource) {
+		if(newResource == null) {
+			unsetImage();
+			return;
+		}
+		
 		image.setMediaResource(newResource);
 		image.setMaxWithAndHeightToFitWithin(150, 150);
 		imageContainer.setVisible(true);
 		// This is needed. ImageContainer is not displayed otherwise.
-		this.getInitialComponent().setDirty(true);
+		getInitialComponent().setDirty(true);
 		imageDeleted = false;
 		file.setLabel(null, null);
 	}
-- 
GitLab