diff --git a/source/java/org/alfresco/web/ui/common/Utils.java b/source/java/org/alfresco/web/ui/common/Utils.java index 785a052ec9..ffc03bdc8c 100644 --- a/source/java/org/alfresco/web/ui/common/Utils.java +++ b/source/java/org/alfresco/web/ui/common/Utils.java @@ -19,6 +19,7 @@ package org.alfresco.web.ui.common; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -50,6 +51,7 @@ import org.alfresco.repo.webdav.WebDAVServlet; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileInfo; +import org.alfresco.service.cmr.model.FileNotFoundException; import org.alfresco.service.cmr.repository.InvalidNodeRefException; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; @@ -554,10 +556,18 @@ public final class Utils } url = path.toString(); } - catch (Exception e) + catch (AccessDeniedException e) + { + // cannot build path if user don't have access all the way up + } + catch (FileNotFoundException nodeErr) + { + // cannot build path if file no longer exists + } + catch (UnsupportedEncodingException encErr) { if (logger.isWarnEnabled()) - logger.warn("Failed to calculate webdav url", e); + logger.warn("Failed to calculate webdav url for node: " + node.getNodeRef(), encErr); } break; } @@ -572,18 +582,29 @@ public final class Utils getSessionMap().get("NavigationBean"); CIFSServer cifsServer = (CIFSServer)FacesContextUtils.getRequiredWebApplicationContext( context).getBean("cifsServer"); - + if (nodeService != null && navBean != null && cifsServer != null) { DiskSharedDevice diskShare = cifsServer.getConfiguration().getPrimaryFilesystem(); if (diskShare != null) { - ContentContext contentCtx = (ContentContext) diskShare.getContext(); - NodeRef rootNode = contentCtx.getRootNode(); - Path path = nodeService.getPath(node.getNodeRef()); - url = Repository.getNamePath(nodeService, path, rootNode, "\\", - "file:///" + navBean.getCIFSServerPath(diskShare)); + ContentContext contentCtx = (ContentContext) diskShare.getContext(); + NodeRef rootNode = contentCtx.getRootNode(); + try + { + Path path = nodeService.getPath(node.getNodeRef()); + url = Repository.getNamePath(nodeService, path, rootNode, "\\", + "file:///" + navBean.getCIFSServerPath(diskShare)); + } + catch (AccessDeniedException e) + { + // cannot build path if user don't have access all the way up + } + catch (InvalidNodeRefException nodeErr) + { + // cannot build path if node no longer exists + } } } break; diff --git a/source/web/WEB-INF/alfresco.tld b/source/web/WEB-INF/alfresco.tld index 0c77666ddc..36166f665d 100644 --- a/source/web/WEB-INF/alfresco.tld +++ b/source/web/WEB-INF/alfresco.tld @@ -1616,6 +1616,12 @@ org.alfresco.web.ui.common.tag.OutputTextTag JSP + + id + false + true + + value true diff --git a/source/web/jsp/dialog/document-details.jsp b/source/web/jsp/dialog/document-details.jsp index 1fdddb0283..56828e7c6b 100644 --- a/source/web/jsp/dialog/document-details.jsp +++ b/source/web/jsp/dialog/document-details.jsp @@ -250,10 +250,10 @@ - + - + diff --git a/source/web/jsp/dialog/space-details.jsp b/source/web/jsp/dialog/space-details.jsp index 8874ece4c2..a882b664aa 100644 --- a/source/web/jsp/dialog/space-details.jsp +++ b/source/web/jsp/dialog/space-details.jsp @@ -248,10 +248,10 @@ - + - +