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 061f017a26cac1781caa9f0b117bad8cd744a744..480afe1d64bcb8ca2f73aad08a2216d12becbfa8 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
@@ -734,8 +734,10 @@ public class VideoManagerImpl implements VideoManager {
 		entry = repositoryManager.setExpenditureOfWork(entry, durationStr);
 		
 		VideoMeta meta = getVideoMetadata(entry.getOlatResource());
-		meta.setLength(durationStr);
-		videoMetadataDao.updateVideoMetadata(meta);
+		if(meta != null && meta.getVideoResource() != null) {
+			meta.setLength(durationStr);
+			videoMetadataDao.updateVideoMetadata(meta);
+		}
 		return entry;
 	}
 
@@ -857,7 +859,7 @@ public class VideoManagerImpl implements VideoManager {
 			sourceMeta = videoMetadataDao.copyVideoMetadata(targetEntry, sourceMeta);
 		}
 		// 3) Trigger transcoding in background
-		if (videoModule.isTranscodingEnabled() && !StringHelper.containsNonWhitespace(sourceMeta.getUrl())) {
+		if (videoModule.isTranscodingEnabled() && sourceMeta != null && !StringHelper.containsNonWhitespace(sourceMeta.getUrl())) {
 			startTranscodingProcess(targetResource);
 		}
 	}
diff --git a/src/main/java/org/olat/modules/video/manager/VideoMetadataDAO.java b/src/main/java/org/olat/modules/video/manager/VideoMetadataDAO.java
index 9841903006e156c619feceab115bf0d4d40cfaa8..b98ab06d5da158a893afb0b11ef068f59e9489ec 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoMetadataDAO.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoMetadataDAO.java
@@ -57,12 +57,13 @@ public class VideoMetadataDAO {
 	 * @return the videometadata or null
 	 */
 	VideoMetaImpl getVideoMetadata(OLATResource videoResource) {
-		StringBuilder sb = new StringBuilder();
+		StringBuilder sb = new StringBuilder(128);
 		sb.append("select meta from videometadata as meta")
-			.append(" where meta.videoResource=:videoresource");
+		  .append(" inner join fetch meta.videoResource as vResource")
+		  .append(" where vResource.key=:resourceKey");
 		List<VideoMetaImpl> metadata = dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(),VideoMetaImpl.class)
-				.setParameter("videoresource", videoResource)
+				.setParameter("resourceKey", videoResource.getKey())
 				.getResultList();
 		return metadata.isEmpty() ? null :  metadata.get(0);
 	}
diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
index 7a2440a083809dac5ebf9c85ba51d56a71599f99..dc816bff6d661c101b0e714cae1d29bc7b22fa87 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
@@ -441,7 +441,7 @@ public class VideoDisplayController extends BasicController {
 
 	@Override
 	protected void doDispose() {
-
+		//
 	}
 
 	@Override
@@ -488,6 +488,7 @@ public class VideoDisplayController extends BasicController {
 				String markerId = ureq.getParameter("markerId");
 				loadMarker(ureq, currentTime, markerId);
 				break;
+			default: // do nothing
 		}
 		updateGUIPreferences(ureq, src);
 	}