diff --git a/distro/changelog.xml b/distro/changelog.xml index 29d9c47..a0f2972 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,4 +1,9 @@ + + Changed ItemBuilder to read the new method getMetadata + + [Incident #77436] Fixing class cast Exception for FolderItem diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java index 45b8a75..cd47e3e 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java @@ -50,8 +50,8 @@ public class ItemBuilder { * @return the item * @throws InternalErrorException the internal error exception */ - public static org.gcube.portlets.widgets.wsexplorer.shared.Item getItem(org.gcube.portlets.widgets.wsexplorer.shared.Item parent, Item workspaceItem, String workspaceItemPath, - List showableTypes, FilterCriteria filterCriteria, + public static org.gcube.portlets.widgets.wsexplorer.shared.Item getItem(org.gcube.portlets.widgets.wsexplorer.shared.Item parent, Item workspaceItem, String workspaceItemPath, + List showableTypes, FilterCriteria filterCriteria, boolean loadChildren, boolean loadGcubeProperties) { ItemType type = getItemType(workspaceItem); @@ -64,7 +64,7 @@ public class ItemBuilder { } boolean isFolder = type.equals(ItemType.PRIVATE_FOLDER)?true:false; - boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false; + boolean isSharedFolder = type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER ) ? true : false; if (isSharedFolder) isFolder = true; @@ -125,8 +125,8 @@ public class ItemBuilder { * @return the item * @throws InternalErrorException the internal error exception */ - public static org.gcube.portlets.widgets.wsexplorer.shared.Item getItem(org.gcube.portlets.widgets.wsexplorer.shared.Item parent, Item workspaceItem, String workspaceItemPath, - List showableTypes, FilterCriteria filterCriteria, + public static org.gcube.portlets.widgets.wsexplorer.shared.Item getItem(org.gcube.portlets.widgets.wsexplorer.shared.Item parent, Item workspaceItem, String workspaceItemPath, + List showableTypes, FilterCriteria filterCriteria, boolean loadChildren, boolean loadGcubeProperties, int startIdx, int limit) { ItemType type = getItemType(workspaceItem); @@ -138,7 +138,7 @@ public class ItemBuilder { return null; } boolean isFolder = type.equals(ItemType.PRIVATE_FOLDER)?true:false; - boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false; + boolean isSharedFolder = type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER ) ? true : false; String itemName = workspaceItem.getName(); @@ -153,7 +153,7 @@ public class ItemBuilder { org.gcube.portlets.widgets.wsexplorer.shared.Item item = null; try{ item = new org.gcube.portlets.widgets.wsexplorer.shared.Item( - parent, workspaceItem.getId(), itemName, type, workspaceItemPath, + parent, workspaceItem.getId(), itemName, type, workspaceItemPath, UserUtil.getUserFullName(workspaceItem.getOwner()), toDate(workspaceItem.getCreationTime()), isFolder, false); item.setSharedFolder(isSharedFolder); @@ -203,7 +203,7 @@ public class ItemBuilder { } /** - * + * * @param item * @return the item type based on the extension of the file */ @@ -279,7 +279,7 @@ public class ItemBuilder { protected static ItemType getFolderItemType(Item item){ if (item instanceof SharedFolder || item instanceof VreFolder) { SharedFolder folder = (SharedFolder) item; - if (folder.isVreFolder()) + if (folder.isVreFolder()) return ItemType.VRE_FOLDER; return ItemType.SHARED_FOLDER; } else if (item instanceof FolderItem) { @@ -407,7 +407,7 @@ public class ItemBuilder { */ protected static boolean checkProperties(Item item, Map requestedProperties) { - if (requestedProperties==null || requestedProperties.size()==0 || (item instanceof FolderItem)) { + if (requestedProperties==null || requestedProperties.size()==0 || item instanceof FolderItem) { return true; } @@ -440,8 +440,8 @@ public class ItemBuilder { protected static Map getGcubePropertiesForItem(Item item) { Map itemMap = new HashMap(); try { - Metadata metadata = item.getPropertyMap(); - Map metadataMap = metadata.getValues(); + Metadata metadata = item.getMetadata(); + Map metadataMap = metadata.getMap(); for (String key : metadataMap.keySet()) { String s = String.valueOf(metadataMap.get(key)); itemMap.put(key, s); @@ -481,9 +481,9 @@ public class ItemBuilder { if (wsFolder instanceof SharedFolder) { SharedFolder shared = (SharedFolder) wsFolder; name = shared.isVreFolder() ? shared.getDisplayName() : shared.getTitle(); - } + } else { - FolderItem shared = (FolderItem) wsFolder; + FolderItem shared = wsFolder; name = shared.getTitle(); } //MANAGEMENT SPECIAL FOLDER @@ -508,7 +508,7 @@ public class ItemBuilder { * @return true, if is special folder */ public static boolean isSpecialFolder(FolderItem wsFolder){ - return (wsFolder.getName().compareTo(WorkspaceExplorerConstants.SPECIAL_FOLDERS_NAME) == 0); + return wsFolder.getName().compareTo(WorkspaceExplorerConstants.SPECIAL_FOLDERS_NAME) == 0; }