From 3d771ca167aff6c82515b9665d6028fa745ab6ea Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 19 May 2020 13:55:47 +0200
Subject: [PATCH] OO-4699: replace space of video url with %20 for Apache HTTP
 client

---
 .../olat/modules/video/manager/VideoManagerImpl.java | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
index ef6368e36bc..f80edbf7c57 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
@@ -297,7 +297,6 @@ public class VideoManagerImpl implements VideoManager {
 
 			// close everything to prevent resource leaks
 			frameOutputStream.close();
-			in.close();
 
 			return true;
 		} catch (Exception | AssertionError e) {
@@ -348,7 +347,6 @@ public class VideoManagerImpl implements VideoManager {
 			} 
 			// close everything to prevent resource leaks
 			frameOutputStream.close();
-			in.close();
 
 			return imgBlack;
 		} catch (Exception | AssertionError e) {
@@ -914,6 +912,9 @@ public class VideoManagerImpl implements VideoManager {
 		VFSContainer masterContainer = getMasterContainer(entry.getOlatResource());
 		VFSLeaf posterFile = masterContainer.createChildLeaf(FILENAME_POSTER_JPG);
 		
+		if(url.contains(" ")) {
+			url = url.replace(" ", "%20");
+		}
 		HttpGet get = new HttpGet(url);
 		get.addHeader("Accept", "image/jpg");
 		
@@ -944,6 +945,9 @@ public class VideoManagerImpl implements VideoManager {
 		}
 		VFSLeaf videoFile = tmpContainer.createChildLeaf(FILENAME_VIDEO_MP4);
 		
+		if(url.contains(" ")) {
+			url = url.replace(" ", "%20");
+		}
 		HttpGet get = new HttpGet(url);
 		get.addHeader("Accept", "video/mp4");
 		
@@ -953,6 +957,8 @@ public class VideoManagerImpl implements VideoManager {
 		} catch(Exception e) {
 			log.error("", e);
 		}
+		// make sure that a metadata is created
+		vfsRepositoryService.getMetadataFor(videoFile);
 		return videoFile;
 	}
 
@@ -964,8 +970,6 @@ public class VideoManagerImpl implements VideoManager {
 			log.error("", e);
 		}	
 	}
-	
-
 
 	@Override
 	public VideoTranscoding updateVideoTranscoding(VideoTranscoding videoTranscoding) {
-- 
GitLab