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); }