You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/12/29 22:27:28 UTC

svn commit: r730000 - in /incubator/sling/trunk/servlets/get/src: main/java/org/apache/sling/servlets/get/RedirectServlet.java test/java/org/apache/sling/servlets/get/RedirectServletTest.java

Author: fmeschbe
Date: Mon Dec 29 13:27:27 2008
New Revision: 730000

URL: http://svn.apache.org/viewvc?rev=730000&view=rev
Log:
SLING-791 Correctly handle trailing slashes in the base path

Modified:
    incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/RedirectServlet.java
    incubator/sling/trunk/servlets/get/src/test/java/org/apache/sling/servlets/get/RedirectServletTest.java

Modified: incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/RedirectServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/RedirectServlet.java?rev=730000&r1=729999&r2=730000&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/RedirectServlet.java (original)
+++ incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/RedirectServlet.java Mon Dec 29 13:27:27 2008
@@ -176,6 +176,11 @@
     private static void makeRelative(StringBuffer pathBuffer, String base,
             String target) {
 
+        // pseudo entry to correctly calculate the relative path
+        if (base.endsWith("/")) {
+            base = base.concat(String.valueOf(Character.MAX_VALUE));
+        }
+        
         String[] bParts = base.substring(1).split("/");
         String[] tParts = target.substring(1).split("/");
 

Modified: incubator/sling/trunk/servlets/get/src/test/java/org/apache/sling/servlets/get/RedirectServletTest.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/get/src/test/java/org/apache/sling/servlets/get/RedirectServletTest.java?rev=730000&r1=729999&r2=730000&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/get/src/test/java/org/apache/sling/servlets/get/RedirectServletTest.java (original)
+++ incubator/sling/trunk/servlets/get/src/test/java/org/apache/sling/servlets/get/RedirectServletTest.java Mon Dec 29 13:27:27 2008
@@ -39,6 +39,12 @@
         assertEquals("d", toRedirect(base, target));
     }
 
+    public void testTrailingSlash() {
+        String base = "/a/b/c/";
+        String target = "/a/b/c.html";
+        assertEquals("../c.html", toRedirect(base, target));
+    }
+
     public void testCommonAncestor() {
         String base = "/a/b/c/d";
         String target = "/a/b/x/y";