From c6f0c0e78acd1f4bf0a76c251d70d9272cdf751d Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Tue, 20 Sep 2016 09:39:53 +0000 Subject: [PATCH] Addec check for Root and First level from root git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/workspace-explorer-app@131529 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../WorkspaceExplorerAppServiceImpl.java | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java index 7e9048c..bee0bce 100644 --- a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java @@ -375,16 +375,30 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem Workspace workspace = WsUtil.getWorkspace(this.getThreadLocalRequest().getSession()); WorkspaceItem wsItem = workspace.getItem(itemIdentifier); logger.trace("workspace retrieve item name: "+wsItem.getName()); - List parents = workspace.getParentsById(itemIdentifier); + List parents = null; + try{ + parents = workspace.getParentsById(itemIdentifier); + }catch(Exception e){ + logger.error("Error on getting list of parents from HL for id: "+itemIdentifier, e); + parents = new ArrayList(); + } + + if(parents==null) //avoiding null + parents = new ArrayList(); + logger.trace("parents size: "+parents.size()); Item[] arrayParents; parentLimit = parentLimit!=null?parentLimit:""; switch (parents.size()) { - case 0: // itemIdentifier is ROOT - logger.debug("itemIdentifier isRoot..."); - if (includeItemAsParent) { //ADDIND ROOT + case 0: //an error? + logger.debug("There was an error? parents are 0"); + return new ArrayList(1); + case 1: //itemIdentifier is ROOT - Parents include the ROOT + case 2: //itemIdentifier is first level from ROOT + logger.debug("itemIdentifier isRoot or a Folder of first level: "); + if (includeItemAsParent) { //ADDIND ROOT OR FOLDER OF FIRST LEVEL WorkspaceFolder wsFolder =(WorkspaceFolder) workspace.getItem(itemIdentifier); Item root = ItemBuilder.buildFolderForBreadcrumbs(wsFolder, null); List listParents = new ArrayList(1); @@ -396,25 +410,26 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem return new ArrayList(); // empty list } - case 1: //itemIdentifier is first level from root + /*case 2: //itemIdentifier is first level from root logger.debug("itemIdentifier is first level..."); List listParents = new ArrayList(); - WorkspaceFolder wsRootFolder = (WorkspaceFolder) parents.get(0); //isRoot - Item root = ItemBuilder.buildFolderForBreadcrumbs(wsRootFolder, null); Item parent = null; if(includeItemAsParent){ - WorkspaceFolder wsFolder1 =(WorkspaceFolder) workspace.getItem(itemIdentifier); //root + WorkspaceFolder wsFolder1 =(WorkspaceFolder) workspace.getItem(itemIdentifier); //folder of first level parent = ItemBuilder.buildFolderForBreadcrumbs(wsFolder1, null); } - if(root.getId().compareTo(parentLimit)!=0) - listParents.add(root); +// WorkspaceFolder wsRootFolder = (WorkspaceFolder) parents.get(0); //isRoot +// Item root = ItemBuilder.buildFolderForBreadcrumbs(wsRootFolder, null); +// +// if(root.getId().compareTo(parentLimit)!=0) +// listParents.add(root); if(parent!=null) listParents.add(parent); // workspaceLogger.trace("returning: "+listParents.toString()); return listParents; - + */ default: break; }