From cb9ae340340f772d18fc261106dc86a57fc32ee6 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Tue, 4 Apr 2023 15:45:57 +0200 Subject: [PATCH] Trying to fix issue #24902#note-13 --- .../engine/mongo/ProfiledMongoManager.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index 2a16725..1786db7 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -809,18 +809,28 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< //Updated by Francesco. See #24902 doc = triggerEvent(doc,EventExecutionRequest.Events.ON_DELETE_FILESET,new Document("force",force).append("path",path).append("fileSetPath", path)); - + //reloading the document in the wrapper + wrapper = new JSONPathWrapper(doc.getTheDocument().toJson()); + // Actually delete only if event was ok if(doc.getLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK)) { // Delete from storage if(fs.getFolderId()!=null) { - log.info("Deleting Fileset Folder ID {} ",fs.getFolderId()); - new WorkspaceManager().deleteItem(fs.getFolderId()); + try { + log.info("Deleting Fileset Folder ID {} ",fs.getFolderId()); + new WorkspaceManager().deleteItem(fs.getFolderId()); + }catch (Exception e) { + log.warn("Error on deleting the Folder ID {} in the VRE Folder",fs.getFolderId(), e); + } } log.debug("Removing FS from document [ID : ] by path {}", doc.getId(), path); // Delete from document wrapper.setElement(path, null); + } + //Updated by Francesco. See #24902 + log.debug("Setting result on profiled document"); + doc.setTheDocument(Document.parse(wrapper.getValueCTX().jsonString())); return doc; }