diff --git a/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java b/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java
index 158c13ada874be8b571f5a0e7d138b05f4ca38c7..d6f631e49ea5613e8cd205167725f1ee01463726 100644
--- a/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java
+++ b/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java
@@ -26,6 +26,7 @@ import java.util.Locale;
 import org.olat.core.commons.services.doceditor.DocEditor;
 import org.olat.core.commons.services.doceditor.DocEditorConfigs;
 import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -94,6 +95,14 @@ public class FileEditor implements DocEditor {
 		return false;
 	}
 
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity, Mode mode) {
+		if (Mode.EDIT.equals(mode)) {
+			return lockManager.isLockedForMe(vfsLeaf, metadata, identity, VFSLockApplicationType.vfs, null);
+		}
+		return false;
+	}
+
 	@Override
 	public Controller getRunController(UserRequest ureq, WindowControl wControl, Identity identity, VFSLeaf vfsLeaf,
 			DocEditorSecurityCallback secCallback, DocEditorConfigs configs) {
diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java
index ea892d27c3c284b9a9d24fa38647632c4337c2bb..b8de142be5b1fbcb904426261073c395b80e13c8 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java
@@ -34,6 +34,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
+import org.apache.logging.log4j.Logger;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.controllers.linkchooser.CustomLinkTreeModel;
 import org.olat.core.commons.modules.bc.FolderLoggingAction;
@@ -43,6 +44,7 @@ import org.olat.core.commons.modules.bc.comparators.LockComparator;
 import org.olat.core.commons.services.analytics.AnalyticsModule;
 import org.olat.core.commons.services.analytics.AnalyticsSPI;
 import org.olat.core.commons.services.vfs.VFSMetadata;
+import org.olat.core.commons.services.vfs.VFSRepositoryModule;
 import org.olat.core.commons.services.vfs.VFSRepositoryService;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.AbstractComponent;
@@ -50,7 +52,6 @@ import org.olat.core.gui.components.ComponentRenderer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.IdentityEnvironment;
-import org.apache.logging.log4j.Logger;
 import org.olat.core.logging.Tracing;
 import org.olat.core.logging.activity.CoreLoggingResourceable;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
@@ -83,7 +84,6 @@ public class FolderComponent extends AbstractComponent {
 	private IdentityEnvironment identityEnv;
 	private VFSContainer rootContainer;
 	private VFSContainer currentContainer;
-	private VFSMetadata currentMetadata;
 	private String currentContainerPath;
 	private String currentSortOrder;
 	// need to know our children in advance in order to be able to identify them later...
@@ -98,6 +98,7 @@ public class FolderComponent extends AbstractComponent {
 	private final VFSContainer externContainerForCopy;
 	
 	private final AnalyticsSPI analyticsSpi;
+	private final VFSRepositoryModule vfsRepositoryModule;
 	private final VFSRepositoryService vfsRepositoryService;
 
 	/**
@@ -127,6 +128,7 @@ public class FolderComponent extends AbstractComponent {
 		super(name);
 		analyticsSpi = CoreSpringFactory.getImpl(AnalyticsModule.class).getAnalyticsProvider();
 		vfsRepositoryService = CoreSpringFactory.getImpl(VFSRepositoryService.class);
+		vfsRepositoryModule = CoreSpringFactory.getImpl(VFSRepositoryModule.class);
 		
 		this.identityEnv = ureq.getUserSession().getIdentityEnvironment();
 		this.filter = filter;
@@ -384,21 +386,19 @@ public class FolderComponent extends AbstractComponent {
 	public boolean setCurrentContainerPath(String relPath) {
 		// get the container
 		setDirty(true);
-		currentMetadata = null;
 		
 		if (relPath == null) relPath = "/";
-		if (!(relPath.charAt(0) == '/')) relPath = "/" + relPath;
+		if (relPath.charAt(0) != '/') relPath = "/" + relPath;
 		VFSItem vfsItem = rootContainer.resolve(relPath);
 		if (!(vfsItem instanceof VFSContainer)) {
 			// unknown path, reset to root contaner...
 			currentContainer = rootContainer;
-			relPath = "";
 			return false;
 		}
 		
 		currentContainer = (VFSContainer)vfsItem;
-		if(currentContainer.canMeta() == VFSConstants.YES) {
-			currentMetadata = vfsRepositoryService.getMetadataFor(currentContainer);
+		if(currentContainer.canMeta() == VFSConstants.YES && !vfsRepositoryModule.isMigrated()) {
+			VFSMetadata currentMetadata = vfsRepositoryService.getMetadataFor(currentContainer);
 			if(currentMetadata != null && !"migrated".equals(currentMetadata.getMigrated())) {
 				vfsRepositoryService.migrate(currentContainer, currentMetadata);
 			}
diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
index 4b6e42330d3e5244b4c154efdb74b65f2a7ec1fb..79f5d8d454d38d4e8295b9bf803875bea9c5dae5 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
@@ -450,7 +450,7 @@ public class ListRenderer {
 		if (!xssErrors) {
 			Identity identity = fc.getIdentityEnvironnement().getIdentity();
 			Roles roles = fc.getIdentityEnvironnement().getRoles();
-			String openIcon = getOpenIconCss(child, canWrite, identity, roles);
+			String openIcon = getOpenIconCss(child, metadata, canWrite, identity, roles);
 			if (openIcon != null) {
 				sb.append("<a ");
 				ubu.buildHrefAndOnclick(sb, null, iframePostEnabled, false, false,
@@ -513,7 +513,7 @@ public class ListRenderer {
 		sb.append("</td></tr>");
 	}
 	
-	private String getOpenIconCss(VFSItem child, boolean canWrite, Identity identity, Roles roles) {
+	private String getOpenIconCss(VFSItem child, VFSMetadata metadata, boolean canWrite, Identity identity, Roles roles) {
 		if (child instanceof VFSLeaf) {
 			VFSLeaf vfsLeaf = (VFSLeaf) child;
 			boolean hasMeta = vfsLeaf.canMeta() == VFSConstants.YES;
@@ -522,9 +522,9 @@ public class ListRenderer {
 					.withHasMeta(hasMeta);
 			DocEditorSecurityCallback editSecCallback = secCallbackBuilder.withMode(Mode.EDIT).build();
 			DocEditorSecurityCallback viewSecCallback = secCallbackBuilder.withMode(Mode.VIEW).build();
-			if (canWrite && docEditorService.hasEditor(identity, roles, vfsLeaf, editSecCallback)) {
+			if (canWrite && docEditorService.hasEditor(identity, roles, vfsLeaf, metadata, editSecCallback)) {
 				return "o_icon_edit";
-			} else if (docEditorService.hasEditor(identity, roles, vfsLeaf, viewSecCallback)) {
+			} else if (docEditorService.hasEditor(identity, roles, vfsLeaf, metadata, viewSecCallback)) {
 				return "o_icon_preview";
 			}
 		}
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/DocEditor.java b/src/main/java/org/olat/core/commons/services/doceditor/DocEditor.java
index 59784e083c947eeb5eca98b6170eaf2d59e7b806..abc521cd2d619fdff078e2689d2e7314aec41503 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/DocEditor.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/DocEditor.java
@@ -21,6 +21,7 @@ package org.olat.core.commons.services.doceditor;
 
 import java.util.Locale;
 
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -75,6 +76,8 @@ public interface DocEditor {
 	 */
 	boolean isLockedForMe(VFSLeaf vfsLeaf, Identity identity, Mode mode);
 	
+	boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity, Mode mode);
+	
 	Controller getRunController(UserRequest ureq, WindowControl wControl, Identity identity, VFSLeaf vfsLeaf,
 			DocEditorSecurityCallback securityCallback, DocEditorConfigs configs);
 
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/DocumentEditorService.java b/src/main/java/org/olat/core/commons/services/doceditor/DocumentEditorService.java
index 9ab921c30f7cdacc1f7ecb2f5c663df439752ec8..f9da1785c68171d93761228339f4c3f22c12876c 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/DocumentEditorService.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/DocumentEditorService.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Optional;
 
 import org.olat.core.commons.services.doceditor.DocEditor.Mode;
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
 import org.olat.core.util.vfs.VFSLeaf;
@@ -80,4 +81,17 @@ public interface DocumentEditorService {
 	 */
 	public boolean hasEditor(Identity identity, Roles roles, VFSLeaf vfsLeaf, DocEditorSecurityCallback secCallback);
 	
+	/**
+	 * This is an optimized version of the method for list where the metadata is
+	 * loaded for a whole directory.
+	 * 
+	 * @param identity The user identity
+	 * @param roles The roles of the user
+	 * @param vfsLeaf The file
+	 * @param metadata The metadata
+	 * @param secCallback
+	 * @return
+	 */
+	public boolean hasEditor(Identity identity, Roles roles, VFSLeaf vfsLeaf, VFSMetadata metadata, DocEditorSecurityCallback secCallback);
+	
 }
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraEditor.java b/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraEditor.java
index 6650938c40e7afe4bf6ae384f1d957c62fea3b74..c9d82901dd9c4fd7aa0bc02d6be81525b2a9e248 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraEditor.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraEditor.java
@@ -26,6 +26,7 @@ import org.olat.core.commons.services.doceditor.DocEditorConfigs;
 import org.olat.core.commons.services.doceditor.DocEditorIdentityService;
 import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
 import org.olat.core.commons.services.doceditor.collabora.ui.CollaboraEditorController;
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -99,6 +100,14 @@ public class CollaboraEditor implements DocEditor {
 		return false;
 	}
 
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity, Mode mode) {
+		if (collaboraService.isLockNeeded(mode)) {
+			return collaboraService.isLockedForMe(vfsLeaf, metadata, identity);
+		}
+		return false;
+	}
+
 	@Override
 	public Controller getRunController(UserRequest ureq, WindowControl wControl, Identity identity, VFSLeaf vfsLeaf,
 			DocEditorSecurityCallback securityCallback, DocEditorConfigs configs) {
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraService.java b/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraService.java
index a24e4cc9c327113406d422d50f9e9f06a2b2d96c..8d2ac7ca173d90e18e27a9ce9a281fadb42f0e0d 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraService.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/collabora/CollaboraService.java
@@ -64,6 +64,8 @@ public interface CollaboraService {
 	boolean isLockNeeded(Mode mode);
 
 	boolean isLockedForMe(VFSLeaf vfsLeaf, Identity identity);
+	
+	boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity);
 
 	LockResult lock(VFSLeaf vfsLeaf, Identity identity);
 
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java
index 6c207e8dca8215b5e7c264d69a2da6d1142b70f3..59a3b4af809fabbabe15d1d8d4946a587e55f6e8 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java
@@ -196,6 +196,11 @@ public class CollaboraServiceImpl implements CollaboraService, GenericEventListe
 	public boolean isLockedForMe(VFSLeaf vfsLeaf, Identity identity) {
 		return lockManager.isLockedForMe(vfsLeaf, identity, VFSLockApplicationType.collaboration, LOCK_APP);
 	}
+	
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity) {
+		return lockManager.isLockedForMe(vfsLeaf, metadata, identity, VFSLockApplicationType.collaboration, LOCK_APP);
+	}
 
 	@Override
 	public LockResult lock(VFSLeaf vfsLeaf, Identity identity) {
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/manager/DocumentEditorServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/manager/DocumentEditorServiceImpl.java
index 9d6664523ee7104254834e379592c3632d00fbf6..d9ebf9be1929d8a43b3229aaea5c636381f0f5a5 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/manager/DocumentEditorServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/manager/DocumentEditorServiceImpl.java
@@ -27,6 +27,7 @@ import org.olat.core.commons.services.doceditor.DocEditor;
 import org.olat.core.commons.services.doceditor.DocEditor.Mode;
 import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
 import org.olat.core.commons.services.doceditor.DocumentEditorService;
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
 import org.olat.core.util.FileUtils;
@@ -87,6 +88,16 @@ public class DocumentEditorServiceImpl implements DocumentEditorService {
 				.isPresent();
 	}
 	
-	
+	@Override
+	public boolean hasEditor(Identity identity, Roles roles, VFSLeaf vfsLeaf, VFSMetadata metadata, DocEditorSecurityCallback secCallback) {
+		String suffix = FileUtils.getFileSuffix(vfsLeaf.getName());
+		return editors.stream()
+				.filter(DocEditor::isEnable)
+				.filter(editor -> editor.isEnabledFor(identity, roles))
+				.filter(editor -> editor.isSupportingFormat(suffix, secCallback.getMode(), secCallback.hasMeta()))
+				.filter(editor -> !editor.isLockedForMe(vfsLeaf, metadata, identity, secCallback.getMode()))
+				.findFirst()
+				.isPresent();
+	}
 
 }
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Editor.java b/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Editor.java
index 69c031678be952bdceb794ea5c217bdea909b494..fef2420a1b2edec1a32ee9c8b27b611efb66baf6 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Editor.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Editor.java
@@ -26,6 +26,7 @@ import org.olat.core.commons.services.doceditor.DocEditorConfigs;
 import org.olat.core.commons.services.doceditor.DocEditorIdentityService;
 import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
 import org.olat.core.commons.services.doceditor.office365.ui.Office365EditorController;
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -98,6 +99,14 @@ public class Office365Editor implements DocEditor {
 		}
 		return false;
 	}
+	
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity, Mode mode) {
+		if (office365Service.isLockNeeded(mode)) {
+			return office365Service.isLockedForMe(vfsLeaf, metadata, identity);
+		}
+		return false;
+	}
 
 	@Override
 	public Controller getRunController(UserRequest ureq, WindowControl wControl, Identity identity, VFSLeaf vfsLeaf,
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Service.java b/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Service.java
index bc49f5fd44afa85274778aa27ed439a118fcf947..53230fe632c40277b1c64f3b3cbe7bb84b4933a8 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Service.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/office365/Office365Service.java
@@ -64,6 +64,8 @@ public interface Office365Service {
 	boolean isLockNeeded(Mode mode);
 
 	boolean isLockedForMe(VFSLeaf vfsLeaf, Identity identity);
+	
+	boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity);
 
 	String getLockToken(VFSLeaf vfsLeaf);
 
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/office365/manager/Office365ServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/office365/manager/Office365ServiceImpl.java
index 59082e5facab46ad91485f203bdaf173f1b50d38..87b2c94e3d6771a9b29c05508c6311ff130fec28 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/office365/manager/Office365ServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/office365/manager/Office365ServiceImpl.java
@@ -304,6 +304,11 @@ public class Office365ServiceImpl implements Office365Service, GenericEventListe
 	public boolean isLockedForMe(VFSLeaf vfsLeaf, Identity identity) {
 		return lockManager.isLockedForMe(vfsLeaf, identity, VFSLockApplicationType.collaboration, LOCK_APP);
 	}
+	
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity) {
+		return lockManager.isLockedForMe(vfsLeaf, metadata, identity, VFSLockApplicationType.collaboration, LOCK_APP);
+	}
 
 	@Override
 	public String getLockToken(VFSLeaf vfsLeaf) {
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeEditor.java b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeEditor.java
index 2e8ea713429e616d18591560683e62dd9e7fa03b..5792510378cbd04d2191f807950388d2de422e48 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeEditor.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeEditor.java
@@ -26,6 +26,7 @@ import org.olat.core.commons.services.doceditor.DocEditorConfigs;
 import org.olat.core.commons.services.doceditor.DocEditorIdentityService;
 import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
 import org.olat.core.commons.services.doceditor.onlyoffice.ui.OnlyOfficeEditorController;
+import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -99,6 +100,14 @@ public class OnlyOfficeEditor implements DocEditor {
 		return false;
 	}
 
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity, Mode mode) {
+		if (onlyOfficeService.isLockNeeded(mode)) {
+			return onlyOfficeService.isLockedForMe(vfsLeaf, metadata, identity);
+		}
+		return false;
+	}
+
 	@Override
 	public Controller getRunController(UserRequest ureq, WindowControl wControl, Identity identity, VFSLeaf vfsLeaf,
 			DocEditorSecurityCallback securityCallback, DocEditorConfigs configs) {
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeService.java b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeService.java
index 9c142186decaa5ac3d0e6daad5d302724419a055..202ddcff46d691e45361d2f60cc3a37a4d45d1d4 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeService.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/OnlyOfficeService.java
@@ -53,6 +53,8 @@ public interface OnlyOfficeService {
 	boolean isLockNeeded(Mode mode);
 
 	boolean isLockedForMe(VFSLeaf vfsLeaf, Identity identity);
+	
+	boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity);
 
 	LockResult lock(VFSLeaf vfsLeaf, Identity identity);
 
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java
index dae9c6df7dfd1981432f42b4b560eca3506a97a8..4c97fb8e3720cd405ad5da0dd13e49c3cb0654c7 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java
@@ -279,6 +279,11 @@ public class OnlyOfficeServiceImpl implements OnlyOfficeService {
 		return lockManager.isLockedForMe(vfsLeaf, identity, VFSLockApplicationType.collaboration, LOCK_APP_NAME);
 	}
 
+	@Override
+	public boolean isLockedForMe(VFSLeaf vfsLeaf, VFSMetadata metadata, Identity identity) {
+		return lockManager.isLockedForMe(vfsLeaf, metadata, identity, VFSLockApplicationType.collaboration, LOCK_APP_NAME);
+	}
+
 	@Override
 	public LockResult lock(VFSLeaf vfsLeaf, Identity identity) {
 		LockResult lock = lockManager.lock(vfsLeaf, identity, VFSLockApplicationType.collaboration, LOCK_APP_NAME);