From 31751ca11ed733c286bdcb67dc7d2998d449d3e6 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Mon, 15 Mar 2021 16:52:19 +0100 Subject: [PATCH] solved an issue on versioning --- .../gcube/data/access/storagehub/Utils.java | 26 +++++++------------ .../storagehub/services/UserManager.java | 3 --- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/gcube/data/access/storagehub/Utils.java b/src/main/java/org/gcube/data/access/storagehub/Utils.java index b527dd6..7c8f944 100644 --- a/src/main/java/org/gcube/data/access/storagehub/Utils.java +++ b/src/main/java/org/gcube/data/access/storagehub/Utils.java @@ -59,8 +59,6 @@ import org.gcube.data.access.storagehub.handlers.items.Node2ItemConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.bull.javamelody.internal.common.LOG; - public class Utils { public final static String SERVICE_NAME = "home-library"; @@ -304,18 +302,14 @@ public class Utils { public static void getAllContentIds(Session ses, Set idsToDelete, Item itemToDelete, VersionHandler versionHandler) throws Exception{ if (itemToDelete instanceof AbstractFileItem) { Node currentNode = ses.getNodeByIdentifier(itemToDelete.getId()); - List ntList = Arrays.asList(currentNode.getMixinNodeTypes()); - boolean isVersioned = false; - logger.debug("mixin node type are {}",ntList); - for (NodeType nt: ntList) - if(nt.getName().equals("mix:versionable")) { - isVersioned = true; - break; - } - - if (isVersioned) { - List versions = versionHandler.getContentVersionHistory(currentNode, ses); + List versions = null; + try { + versions = versionHandler.getContentVersionHistory(currentNode, ses); + }catch (Exception e) { + logger.warn("versions cannot be retrieved for node with id {}",itemToDelete.getId()); + } + if (versions!= null) { versions.forEach(v -> { try { String storageId =v.getFrozenNode().getProperty(NodeProperty.STORAGE_ID.toString()).getString(); @@ -325,10 +319,10 @@ public class Utils { logger.warn("error retreiving sotrageId version for item with id {}",itemToDelete.getId(),e); } }); - + } else - logger.info("not versionable node type found of type {}", currentNode.getPrimaryNodeType().toString()); - + logger.info("not versionable node type found of type {}", currentNode.getPrimaryNodeType().getName().toString()); + idsToDelete.add(((AbstractFileItem) itemToDelete).getContent().getStorageId()); }else if (itemToDelete instanceof FolderItem) { List items = Utils.getItemList(ses.getNodeByIdentifier(itemToDelete.getId()), Excludes.GET_ONLY_CONTENT , null, true, null); diff --git a/src/main/java/org/gcube/data/access/storagehub/services/UserManager.java b/src/main/java/org/gcube/data/access/storagehub/services/UserManager.java index c43a415..5defa11 100644 --- a/src/main/java/org/gcube/data/access/storagehub/services/UserManager.java +++ b/src/main/java/org/gcube/data/access/storagehub/services/UserManager.java @@ -10,10 +10,8 @@ import java.util.function.Predicate; import javax.inject.Inject; import javax.jcr.Node; -import javax.jcr.NodeIterator; import javax.jcr.PathNotFoundException; import javax.jcr.RepositoryException; -import javax.jcr.query.QueryResult; import javax.servlet.ServletContext; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; @@ -33,7 +31,6 @@ import org.apache.jackrabbit.api.security.user.Query; import org.apache.jackrabbit.api.security.user.QueryBuilder; import org.apache.jackrabbit.api.security.user.User; import org.apache.jackrabbit.core.security.principal.PrincipalImpl; -import org.apache.poi.hpsf.Array; import org.gcube.common.authorization.control.annotations.AuthorizationControl; import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse; import org.gcube.common.storagehub.model.Excludes;