diff --git a/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/controller/MDStoreController.java b/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/controller/MDStoreController.java index b17e9e81..185e3b34 100644 --- a/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/controller/MDStoreController.java +++ b/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/controller/MDStoreController.java @@ -152,20 +152,21 @@ public class MDStoreController extends AbstractDnetController { @ApiOperation("Delete expired versions") @DeleteMapping("/versions/expired") public StatusResponse deleteExpiredVersions() { - new Thread(() -> { - for (final String versionId : databaseUtils.listExpiredVersions()) { - try { - final String hdfsPath = databaseUtils.deleteMdStoreVersion(versionId, true); - hdfsClient.deletePath(hdfsPath); - } catch (final MDStoreManagerException e) { - log.warn("Error deleteting version " + versionId, e); - } - } - }).start(); - + new Thread(this::performDeleteOfExpiredVersions).start(); return StatusResponse.DELETING; } + private synchronized void performDeleteOfExpiredVersions() { + for (final String versionId : databaseUtils.listExpiredVersions()) { + try { + final String hdfsPath = databaseUtils.deleteMdStoreVersion(versionId, true); + hdfsClient.deletePath(hdfsPath); + } catch (final MDStoreManagerException e) { + log.warn("Error deleteting version " + versionId, e); + } + } + } + @ApiOperation("Fix the inconsistencies on HDFS") @GetMapping("/hdfs/inconsistencies") public Set fixHdfsInconsistencies(