diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ApplicationDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ApplicationDaoJena.java index 8ceac577d..c2858bf02 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ApplicationDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ApplicationDaoJena.java @@ -54,6 +54,12 @@ public class ApplicationDaoJena extends JenaBaseDao implements ApplicationDao { RDFNode node = nodes.next(); if (node.isLiteral()) { String namespace = ((Literal)node).getLexicalForm(); + // org.openrdf.model.impl.URIImpl.URIImpl.getNamespace() returns a + // namespace with a final slash, so this makes matching easier. + // It also accords with the way the default namespace is defined. + if (!namespace.endsWith("/")) { + namespace = namespace + "/"; + } externallyLinkedNamespaces.add(namespace); } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/URLRewritingHttpServletResponse.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/URLRewritingHttpServletResponse.java index 1b5a85185..928db1f44 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/URLRewritingHttpServletResponse.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/URLRewritingHttpServletResponse.java @@ -167,11 +167,11 @@ public class URLRewritingHttpServletResponse implements HttpServletResponse { // remove the ugly uri parameter indexToRemove = qpIndex; } else if (isExternallyLinkedNamespace(namespace)) { - namespace = removeFinalSlash(namespace); log.debug("Found externally linked namespace " + namespace); // Use the externally linked namespace in the url - url.pathParts = new ArrayList(); - url.pathParts.add(namespace); + url.pathParts = new ArrayList(); + // toString() will join elements with a slash, so remove this one. + url.pathParts.add(namespace.replaceAll("/$", "")); url.pathParts.add(localName); // remove the ugly uri parameter indexToRemove = qpIndex; @@ -470,13 +470,8 @@ public class URLRewritingHttpServletResponse implements HttpServletResponse { } private boolean isExternallyLinkedNamespace(String namespace) { - namespace = removeFinalSlash(namespace); List externallyLinkedNamespaces = wadf.getApplicationDao().getExternallyLinkedNamespaces(); return externallyLinkedNamespaces.contains(namespace); } - private String removeFinalSlash(String str) { - return str.replaceAll("/$", ""); - } - }