@Override protected void doExecute(MetadataProvider mdProvider) throws Exception { String dataverseName = actionListener.getEntityId().getDataverse(); String entityName = actionListener.getEntityId().getEntityName(); try { lockManager.acquireActiveEntityWriteLock(mdProvider.getLocks(), dataverseName + '.' + entityName); List<Dataset> datasets = actionListener.getDatasets(); for (Dataset dataset : datasets) { MetadataLockUtil.modifyDatasetBegin(lockManager, mdProvider.getLocks(), dataverseName, DatasetUtil.getFullyQualifiedName(dataset)); } actionListener.start(mdProvider); } finally { mdProvider.getLocks().reset(); } } };