@Override protected void doExecute(MetadataProvider mdProvider) throws Exception { String entityDataverseName = actionListener.getEntityId().getDataverse(); String entityName = actionListener.getEntityId().getEntityName(); try { lockManager.acquireActiveEntityReadLock(mdProvider.getLocks(), entityDataverseName + '.' + entityName); lockManager.acquireDatasetWriteLock(mdProvider.getLocks(), DatasetUtil.getFullyQualifiedName(dataset)); List<Dataset> datasets = clusterController.getAllDatasets(); if (datasets.contains(dataset)) { throw new HyracksDataException("Dataset " + dataset + " already exists"); } actionListener.add(dataset); datasets.add(dataset); } finally { mdProvider.getLocks().reset(); } } };