@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); // we have to first read lock all active entities before deleting a dataset lockManager.acquireDatasetWriteLock(mdProvider.getLocks(), DatasetUtil.getFullyQualifiedName(dataset)); List<Dataset> datasets = clusterController.getAllDatasets(); if (!datasets.contains(dataset)) { throw new HyracksDataException("Dataset " + dataset + " does not exist"); } actionListener.remove(dataset); datasets.remove(dataset); } finally { mdProvider.getLocks().reset(); } } };