diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/MetaInfoReader.java b/src/main/java/org/olat/core/commons/services/vfs/manager/MetaInfoReader.java
index 622a93851c52a2340a1b8652683fb5efea5c640f..6a9832aba2aef6cc024208e29687b17aa0df1423 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/manager/MetaInfoReader.java
+++ b/src/main/java/org/olat/core/commons/services/vfs/manager/MetaInfoReader.java
@@ -225,7 +225,7 @@ public class MetaInfoReader {
 			} else if ("thumbnails".equals(qName)) {
 				String valueStr = attributes.getValue("cannotGenerateThumbnail");
 				if(StringHelper.containsNonWhitespace(valueStr)) {
-					meta.setCannotGenerateThumbnails(Boolean.valueOf(valueStr).booleanValue());
+					meta.setCannotGenerateThumbnails(Boolean.parseBoolean(valueStr));
 				}
 			}else if ("thumbnail".equals(qName)) {
 				Thumbnail thumbnail = new Thumbnail();
@@ -252,7 +252,7 @@ public class MetaInfoReader {
 			if(current == null) return;
 			
 			if("comment".equals(qName)) {
-				meta.setComment(current.toString());
+				meta.setComment(cutLenght(current.toString(), 32000));
 			} else if ("author".equals(qName)) {
 				Long authorKey = getLong();
 				if(authorKey != null) {
@@ -264,30 +264,30 @@ public class MetaInfoReader {
 					meta.setLockedBy(securityManager.loadIdentityByKey(lockedByKey));
 				}
 			} else if ("title".equals(qName)) {
-				meta.setTitle(current.toString());
+				meta.setTitle(cutLenght(current.toString(), 2000));
 			} else if ("publisher".equals(qName)) {
-				meta.setPublisher(current.toString());
+				meta.setPublisher(cutLenght(current.toString(), 2000));
 			} else if ("source".equals(qName)) {
-				meta.setSource(current.toString());
+				meta.setSource(cutLenght(current.toString(), 2000));
 			} else if ("city".equals(qName)) {
-				meta.setCity(current.toString());
+				meta.setCity(cutLenght(current.toString(), 256));
 			} else if ("pages".equals(qName)) {
-				meta.setPages(current.toString());
+				meta.setPages(cutLenght(current.toString(), 2000));
 			} else if ("language".equals(qName)) {
-				meta.setLanguage(current.toString());
+				meta.setLanguage(cutLenght(current.toString(), 16));
 			} else if ("downloadCount".equals(qName)) {
 				Long key = getLong();
 				if(key != null) {
 					meta.setDownloadCount(key.intValue());
 				}
 			} else if ("month".equals(qName)) {
-				meta.setPubMonth(current.toString());
+				meta.setPubMonth(cutLenght(current.toString(), 16));
 			} else if ("year".equals(qName)) {
-				meta.setPubYear(current.toString());
+				meta.setPubYear(cutLenght(current.toString(), 16));
 			} else if (qName.equals("creator")) {
-				meta.setCreator(current.toString());
+				meta.setCreator(cutLenght(current.toString(), 2000));
 			} else if (qName.equals("url")) {
-				meta.setUrl(current.toString());
+				meta.setUrl(cutLenght(current.toString(), 1000));
 			} else if (qName.equals("licenseTypeKey")) {
 				//
 			} else if (qName.equals("licenseTypeName")) {
@@ -299,7 +299,7 @@ public class MetaInfoReader {
 			} else if (qName.equals("licenseText")) {
 				meta.setLicenseText(current.toString());
 			} else if (qName.equals("licensor")) {
-				meta.setLicensor(current.toString());
+				meta.setLicensor(cutLenght(current.toString(), 4000));
 			} else if (qName.equals("thumbnail")) {
 				if(fMeta != null) {
 					String finalName = current.toString();
@@ -321,6 +321,13 @@ public class MetaInfoReader {
 			}
 			return null;
 		}
+		
+		private String cutLenght(String text, int maxLength) {
+			if(text == null || text.length() < maxLength) {
+				return text;
+			}
+			return text.substring(0, maxLength - 2);
+		}
 	}
 	
 	public static class Thumbnail implements Serializable {
diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java
index 2c884c3a1ac5b2e86b6152d53da3c911c5c69c96..8dc0a770657f06c62b1a18bc8d8fa160a1196d4d 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java
@@ -1138,7 +1138,7 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv
 	
 	private VFSMetadata migrateVersions(File file, File versionFile, VFSMetadata metadata) {
 		VersionsFileImpl versions = (VersionsFileImpl)VFSXStream.read(versionFile);
-		List<VFSRevision> revisions = versions.getRevisions();
+		List<RevisionFileImpl> revisions = versions.getRevisions();
 		if(revisions == null || revisions.isEmpty()) {
 			return metadata;
 		}
@@ -1147,15 +1147,14 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv
 		metadata.setRevisionNr(versions.getRevisionNr());
 		metadata = metadataDao.updateMetadata(metadata);
 		
-		for(VFSRevision revision:revisions) {
-			RevisionFileImpl revisionFile = (RevisionFileImpl)revision;
-			String filename = revisionFile.getFilename();
+		for(RevisionFileImpl revision:revisions) {
+			String filename = revision.getFilename();
 			File oldOne = new File(versionFile.getParentFile(), filename);
 			if(oldOne.exists()) {
 				try {
-					String newRevisionFilename = generateFilenameForRevision(file, revisionFile.getRevisionNr());
-					revisionDao.createRevision(revisionFile.getAuthor(), newRevisionFilename, revisionFile.getRevisionNr(),
-							oldOne.length(), revisionFile.getFileLastModified(), revisionFile.getComment(), metadata);
+					String newRevisionFilename = generateFilenameForRevision(file, revision.getRevisionNr());
+					revisionDao.createRevision(revision.getAuthor(), newRevisionFilename, revision.getRevisionNr(),
+							oldOne.length(), revision.getFileLastModified(), revision.getComment(), metadata);
 					File target = new File(file.getParentFile(), newRevisionFilename);
 					Files.move(oldOne.toPath(), target.toPath(), StandardCopyOption.REPLACE_EXISTING);
 				} catch (IOException e) {
diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAO.java b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAO.java
index d702ba9ae1f5ea3da6f37ffd4f7a174941d98635..3d7463eee60fd4d26ad6d5c20bdd04ff2c75c11d 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAO.java
+++ b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAO.java
@@ -84,6 +84,8 @@ public class VFSRevisionDAO {
 	}
 	
 	public List<VFSRevision> getRevisions(VFSMetadataRef metadata) {
+		if(metadata == null) return new ArrayList<>();
+		
 		StringBuilder sb = new StringBuilder(256);
 		sb.append("select rev from vfsrevision rev")
 		  .append(" left join fetch rev.author as author")
diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSXStream.java b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSXStream.java
index ea94e2f5b5ad325af5ec449b2d2712bade98da16..491aba1d4b5112e6d2f67376558b6c36d382c3d8 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSXStream.java
+++ b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSXStream.java
@@ -139,12 +139,14 @@ public class VFSXStream {
 		@Override
 		public Object fromString(String str) {
 			Identity identity = null;
-			if(StringHelper.isLong(str)) {
-				Long identityKey = Long.valueOf(str);
-				identity = CoreSpringFactory.getImpl(BaseSecurity.class).loadIdentityByKey(identityKey);
-			}
-			if(identity == null) {
-				identity = CoreSpringFactory.getImpl(BaseSecurity.class).findIdentityByName(str);
+			if(StringHelper.containsNonWhitespace(str) && !"-".equals(str)) {
+				if(StringHelper.isLong(str)) {
+					Long identityKey = Long.valueOf(str);
+					identity = CoreSpringFactory.getImpl(BaseSecurity.class).loadIdentityByKey(identityKey);
+				}
+				if(identity == null && !"-".equals(str)) {
+					identity = CoreSpringFactory.getImpl(BaseSecurity.class).findIdentityByName(str);
+				}
 			}
 			return identity;
 		}	
diff --git a/src/main/java/org/olat/core/util/vfs/version/VersionsFileImpl.java b/src/main/java/org/olat/core/util/vfs/version/VersionsFileImpl.java
index 6b53323ef48635e136a1fea0a20c4a7eea8c5317..929b97b6733ce7b7f3621f0a8316dc978b670f71 100644
--- a/src/main/java/org/olat/core/util/vfs/version/VersionsFileImpl.java
+++ b/src/main/java/org/olat/core/util/vfs/version/VersionsFileImpl.java
@@ -22,7 +22,6 @@ package org.olat.core.util.vfs.version;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.olat.core.commons.services.vfs.VFSRevision;
 import org.olat.core.util.vfs.VFSLeaf;
 
 /**
@@ -46,7 +45,7 @@ public class VersionsFileImpl {
 	private String comment;
 	private Object currentVersion;
 	private VFSLeaf versionFile;
-	private List<VFSRevision> revisions;
+	private List<RevisionFileImpl> revisions;
 
 	public VersionsFileImpl() {
 	//
@@ -76,14 +75,14 @@ public class VersionsFileImpl {
 		this.currentVersion = currentVersion;
 	}
 
-	public List<VFSRevision> getRevisions() {
+	public List<RevisionFileImpl> getRevisions() {
 		if (revisions == null) {
 			revisions = new ArrayList<>();
 		}
 		return revisions;
 	}
 
-	public void setRevisions(List<VFSRevision> revisions) {
+	public void setRevisions(List<RevisionFileImpl> revisions) {
 		this.revisions = revisions;
 	}
 
diff --git a/src/main/java/org/olat/user/ui/admin/UserAdminMainController.java b/src/main/java/org/olat/user/ui/admin/UserAdminMainController.java
index ac3599938782c52d17dabcb936014e2d3f0d7fb4..57ef907da194ab9960b9ac5174f5a98fc3ea17de 100644
--- a/src/main/java/org/olat/user/ui/admin/UserAdminMainController.java
+++ b/src/main/java/org/olat/user/ui/admin/UserAdminMainController.java
@@ -530,7 +530,7 @@ public class UserAdminMainController extends MainLayoutBasicController implement
 		if (isAdministrator) {
 			appendNode("menu.authorgroup", "menu.authorgroup.alt", "authorgroup", "o_sel_useradmin_authorgroup", accessNode);
 			appendNode("menu.coauthors", "menu.coauthors.alt", "coauthors", "o_sel_useradmin_coauthors", accessNode);
-			appendNode("menu.resourceowners", "menu.resourceowners.alt", "resourceowners", "o_sel_useradmin_resourceowners", accessNode);
+			// too slow appendNode("menu.resourceowners", "menu.resourceowners.alt", "resourceowners", "o_sel_useradmin_resourceowners", accessNode);
 		}
 		
 		appendNode("menu.coursecoach", "menu.coursecoach.alt", "coursecoach", "o_sel_useradmin_coursecoach", accessNode);
diff --git a/src/test/java/org/olat/core/commons/services/vfs/manager/house.versions.jpg.xml b/src/test/java/org/olat/core/commons/services/vfs/manager/house.versions.jpg.xml
index 1e505ffd21d6d7b6ab4f68b45047a7c681f991c8..1d3b889073c886dd7a3859b38f1448d895419b56 100644
--- a/src/test/java/org/olat/core/commons/services/vfs/manager/house.versions.jpg.xml
+++ b/src/test/java/org/olat/core/commons/services/vfs/manager/house.versions.jpg.xml
@@ -61,5 +61,27 @@
         <thumbnails/>
       </metadata>
     </revision>
+    <revision>
+      <author>-</author>
+      <comment>A new pink one</comment>
+      <name>house.jpg</name>
+      <uuid>acba63ce-de13-4759-bf85-a26f1833edd2</uuid>
+      <lastModified>1552487917000</lastModified>
+      <revisionNr>3</revisionNr>
+      <filename>c4087cf5-0ed6-4ed8-a97c-1317c963a0a8_house.jpg</filename>
+      <metadata class="metadata">
+        <uuid>e3d63dc8595942b2801d0af9c1f61dd3</uuid>
+        <authorIdentKey>720898</authorIdentKey>
+        <comment></comment>
+        <licenseTypeKey>1</licenseTypeKey>
+        <licenseTypeName>no.license</licenseTypeName>
+        <downloadCount>2</downloadCount>
+        <locked>false</locked>
+        <originFile>/HotCoffee/olatdatas/openolat_110_postgresql/bcroot/homes/kanu/public/house.jpg</originFile>
+        <metaFile>/HotCoffee/olatdatas/openolat_110_postgresql/bcroot/.meta/homes/kanu/public/house.jpg.xml</metaFile>
+        <cannotGenerateThumbnail>false</cannotGenerateThumbnail>
+        <thumbnails/>
+      </metadata>
+    </revision>
   </revisions>
 </versions>
\ No newline at end of file