diff --git a/pom.xml b/pom.xml index d62a3c5..474a01c 100644 --- a/pom.xml +++ b/pom.xml @@ -113,6 +113,7 @@ *:* module-info.class + javax/**/* diff --git a/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java b/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java index 6df4854..87ed7df 100644 --- a/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java +++ b/src/main/java/eu/eudat/depositinterface/dataverserepository/interfaces/DataverseDeposit.java @@ -102,11 +102,14 @@ public class DataverseDeposit implements RepositoryDeposit { Map datasetJson = this.getDatasetIdentifier(dmpDepositModel.getPreviousDOI()); Identifier id = new Identifier(); id.setId(((Integer) datasetJson.get("id")).longValue()); - JsonNode jsonNode = this.objectMapper.readTree(new JSONObject(datasetJson).toString()); - List files = jsonNode.findValues("dataFile"); - for(JsonNode file: files){ - int fileId = file.get("id").asInt(); - this.deleteFile(fileId); + JsonNode jsonNode = objectMapper.convertValue(datasetJson, JsonNode.class); + JsonNode latestVersion = jsonNode.get("latestVersion"); + JsonNode files = latestVersion.get("files"); + if(files.isArray()){ + for (JsonNode file : files) { + int fileId = file.get("dataFile").get("id").asInt(); + this.deleteFile(fileId); + } } this.uploadFiles(dmpDepositModel, dmpDepositModel.getPreviousDOI());