You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/03/21 11:09:25 UTC

git commit: WICKET-5073 UrlRenderer#removeCommonPrefixes() fails when contextPath+filterPrefix has more segments than the argument

Updated Branches:
  refs/heads/master 929e12839 -> 878bc5cc4


WICKET-5073 UrlRenderer#removeCommonPrefixes() fails when contextPath+filterPrefix has more segments than the argument


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/878bc5cc
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/878bc5cc
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/878bc5cc

Branch: refs/heads/master
Commit: 878bc5cc4a23b89657b581e21f856852a03be1be
Parents: 929e128
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Mar 21 12:09:11 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Mar 21 12:09:11 2013 +0200

----------------------------------------------------------------------
 .../wicket/request/cycle/UrlRendererTest.java      |   20 +++++++++++++++
 .../org/apache/wicket/request/UrlRenderer.java     |    2 +-
 2 files changed, 21 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/878bc5cc/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
index e47bba1..d7971aa 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/cycle/UrlRendererTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.request.cycle;
 
+import java.util.Arrays;
+
 import org.apache.wicket.mock.MockWebRequest;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.UrlRenderer;
@@ -517,4 +519,22 @@ public class UrlRendererTest extends Assert
 
 		assertEquals("//host:1234/c/d", encodedRelativeUrl);
 	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-5073
+	 */
+	@Test
+	public void removeCommonPrefixesWicket5073()
+	{
+		Url baseUrl = new Url(Arrays.asList(""), Arrays.<Url.QueryParameter>asList());
+
+		MockWebRequest request = new MockWebRequest(baseUrl);
+		request.setContextPath("/qs");
+		request.setFilterPath("");
+		UrlRenderer renderer = new UrlRenderer(request);
+		renderer.setBaseUrl(baseUrl);
+
+		String rendered = renderer.renderRelativeUrl(Url.parse("wicket/resource/org.apache.wicket.Application/x.css"));
+		assertEquals("./wicket/resource/org.apache.wicket.Application/x.css", rendered);
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/878bc5cc/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java b/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
index b2f7f13..affc516 100644
--- a/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/UrlRenderer.java
@@ -334,7 +334,7 @@ public class UrlRenderer
 			}
 		}
 
-		for (int i = 0; i < commonPrefix.getSegments().size(); i++)
+		for (int i = 0; i < commonPrefix.getSegments().size() && !segments.isEmpty(); i++)
 		{
 			segments.remove(0);
 		}