diff --git a/.classpath b/.classpath index 26981b6..04023d0 100644 --- a/.classpath +++ b/.classpath @@ -15,6 +15,7 @@ + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6e80039..4e4a3ad 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -5,4 +5,5 @@ org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 7d683bf..88679f4 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,5 +1,5 @@ - + diff --git a/distro/changelog.xml b/distro/changelog.xml index af67d01..fd73de7 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,6 +1,7 @@ + Updated to new storage hub exception handling Feature #12796 Workspace widget: recent documents has a different behaviour on URL items - 4.0.0 diff --git a/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java b/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java index 1d7d99c..c24f4fb 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/StorageHubServiceUtil.java @@ -38,13 +38,18 @@ public class StorageHubServiceUtil { SecurityTokenProvider.instance.set(authUser.getSecurityToken()); ItemManagerClient client = AbstractPlugin.item().build(); List theChildren = null; - if (offset >= 0) { - int limit = offset; - theChildren = client.getChildren(itemId, from, limit, false, "hl:accounting"); - } - else { //all the items - theChildren = client.getChildren(itemId, false, "hl:accounting"); + try { + if (offset >= 0) { + int limit = offset; + theChildren = client.getChildren(itemId, from, limit, false, "hl:accounting"); + } + else { //all the items + theChildren = client.getChildren(itemId, false, "hl:accounting"); + } } + catch (Exception e) { + e.printStackTrace(); + } if (theChildren == null || theChildren.isEmpty()) { toReturn.setChildren(children); _log.debug("*** Returning empty "); @@ -68,7 +73,14 @@ public class StorageHubServiceUtil { String authorizationToken = Utils.getCurrentUserToken(scope, userName); SecurityTokenProvider.instance.set(authorizationToken); ItemManagerClient client = AbstractPlugin.item().build(); - return client.childrenCount(itemId, false); + int toReturn = -1; + try { + client.childrenCount(itemId, false); + } + catch (Exception e) { + e.printStackTrace(); + } + return toReturn; } /** * @@ -103,8 +115,8 @@ public class StorageHubServiceUtil { SecurityTokenProvider.instance.set(authUser.getSecurityToken()); WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); List theChildren = wsclient.getRecentModifiedFilePerVre(); - - + + if (theChildren == null || theChildren.isEmpty()) { toReturn.setChildren(children); _log.debug("*** Returning empty "); @@ -130,7 +142,7 @@ public class StorageHubServiceUtil { SecurityTokenProvider.instance.set(authorizationToken); String siteLandingPagePath = PortalContext.getConfiguration().getSiteLandingPagePath(request); String toReturn = siteLandingPagePath; - + try { WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); String itemId = wsclient.getVreFolder("hl:accounting").getId(); @@ -168,9 +180,9 @@ public class StorageHubServiceUtil { } return toReturn; } - - - - - + + + + + } diff --git a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java index 6ca8a26..0c185ab 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java @@ -18,6 +18,7 @@ import org.gcube.common.storagehub.client.dsl.FileContainer; import org.gcube.common.storagehub.client.dsl.StorageHubClient; import org.gcube.common.storagehub.client.plugins.AbstractPlugin; import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient; +import org.gcube.common.storagehub.model.exceptions.StorageHubException; import org.gcube.common.storagehub.model.items.Item; import org.gcube.portlets.user.wswidget.shared.AuthorizedUser; import org.gcube.portlets.user.wswidget.shared.Breadcrumb; @@ -56,8 +57,14 @@ public class WorkspaceWidget extends MVCPortlet { setAuthorizationToken(resourceRequest); String selectedItemId = fileToDownloadId.split("=")[1]; StorageHubClient client = new StorageHubClient(); - FileContainer fileContainer = client.open(selectedItemId).asFile(); - StreamDescriptor streamDescr = fileContainer.download(selectedItemId); + FileContainer fileContainer = null; + StreamDescriptor streamDescr = null; + try { + fileContainer = client.open(selectedItemId).asFile(); + streamDescr = fileContainer.download(selectedItemId); + } catch (StorageHubException e) { + e.printStackTrace(); + } HttpServletResponse httpRes = PortalUtil.getHttpServletResponse(resourceResponse); if (ITEM_URL_TYPE.compareTo(fileContainer.get().getPrimaryType()) == 0) { //if is a type URL we open drectly the link Scanner sc = new Scanner( streamDescr.getStream());