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/05/13 16:53:51 UTC

[1/3] git commit: WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8

Updated Branches:
  refs/heads/wicket-6.x 8b4532b31 -> d0e233553


WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8

Extend PageInstanceMapper to match when the request is to 'page?...' and the baseUrl is 'wicket/page?...'


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

Branch: refs/heads/wicket-6.x
Commit: 25df9fa4cc4289b8136a896e11c65afd4a4eb6cf
Parents: 8b4532b
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon May 13 17:02:06 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon May 13 17:03:12 2013 +0300

----------------------------------------------------------------------
 .../core/request/mapper/PageInstanceMapper.java    |   34 ++++++++--
 .../request/mapper/PageInstanceMapperTest.java     |   55 +++++++++++++-
 2 files changed, 79 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/25df9fa4/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
index 776e546..fb9b3bd 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
@@ -59,9 +59,9 @@ public class PageInstanceMapper extends AbstractComponentMapper
 	@Override
 	public IRequestHandler mapRequest(Request request)
 	{
-		Url url = request.getUrl();
-		if (matches(url))
+		if (matches(request))
 		{
+			Url url = request.getUrl();
 			PageComponentInfo info = getPageComponentInfo(url);
 			if (info != null && info.getPageInfo().getPageId() != null)
 			{
@@ -153,16 +153,38 @@ public class PageInstanceMapper extends AbstractComponentMapper
 	public int getCompatibilityScore(final Request request)
 	{
 		int score = 0;
-		Url url = request.getUrl();
-		if (matches(url))
+		if (matches(request))
 		{
 			score = Integer.MAX_VALUE;
 		}
 		return score;
 	}
 
-	private boolean matches(final Url url)
+	/**
+	 * Matches when the request url starts with
+	 * {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}/{@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
+	 * or when the base url starts with {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}
+	 * and the request url with {@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
+
+	 * @param request
+	 *      the request to check
+	 * @return {@code true} if the conditions match
+	 */
+	private boolean matches(final Request request)
 	{
-		return urlStartsWith(url, getContext().getNamespace(), getContext().getPageIdentifier());
+		boolean matches = false;
+		Url url = request.getUrl();
+		String namespace = getContext().getNamespace();
+		String pageIdentifier = getContext().getPageIdentifier();
+		if (urlStartsWith(url, namespace, pageIdentifier))
+		{
+			matches = true;
+		}
+		else if (urlStartsWith(request.getClientUrl(), namespace) && urlStartsWith(url, pageIdentifier))
+		{
+			matches = true;
+		}
+
+		return matches;
 	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/25df9fa4/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
index 089fc31..a112640 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
@@ -16,17 +16,21 @@
  */
 package org.apache.wicket.core.request.mapper;
 
+import java.nio.charset.Charset;
+import java.util.Locale;
+
 import org.apache.wicket.MockPage;
-import org.apache.wicket.markup.html.link.ILinkListener;
-import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.Url;
-import org.apache.wicket.request.component.IRequestableComponent;
 import org.apache.wicket.core.request.handler.IPageProvider;
 import org.apache.wicket.core.request.handler.IPageRequestHandler;
 import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
 import org.apache.wicket.core.request.handler.PageAndComponentProvider;
 import org.apache.wicket.core.request.handler.PageProvider;
 import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.markup.html.link.ILinkListener;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestableComponent;
 import org.junit.Test;
 
 /**
@@ -167,6 +171,49 @@ public class PageInstanceMapperTest extends AbstractMapperTest
 		((IPageRequestHandler)handler).getPage();
 	}
 
+	@Test
+	public void decode9()
+	{
+		final Url url = Url.parse("page?4");
+
+		Request request = new Request()
+		{
+			@Override
+			public Url getUrl()
+			{
+				return url;
+			}
+
+			@Override
+			public Locale getLocale()
+			{
+				return null;
+			}
+
+			@Override
+			public Charset getCharset()
+			{
+				return Charset.forName("UTF-8");
+			}
+
+			@Override
+			public Url getClientUrl()
+			{
+				return Url.parse("wicket/page");
+			}
+
+			@Override
+			public Object getContainerRequest()
+			{
+				return null;
+			}
+		};
+
+		IRequestHandler handler = encoder.mapRequest(request);
+
+		((IPageRequestHandler)handler).getPage();
+	}
+
 	/**
 	 *
 	 */


[2/3] git commit: WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8

Posted by mg...@apache.org.
WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8

Make the check more strict. We can relax it later if needed.


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

Branch: refs/heads/wicket-6.x
Commit: 3e51cca909c7179ca0548c2043b3ec89745c45ed
Parents: 25df9fa
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon May 13 17:07:25 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon May 13 17:08:10 2013 +0300

----------------------------------------------------------------------
 .../core/request/mapper/PageInstanceMapper.java    |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/3e51cca9/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
index fb9b3bd..9f75813 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
@@ -163,7 +163,8 @@ public class PageInstanceMapper extends AbstractComponentMapper
 	/**
 	 * Matches when the request url starts with
 	 * {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}/{@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
-	 * or when the base url starts with {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}
+	 * or when the base url starts with
+	 * {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}/{@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
 	 * and the request url with {@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
 
 	 * @param request
@@ -180,7 +181,7 @@ public class PageInstanceMapper extends AbstractComponentMapper
 		{
 			matches = true;
 		}
-		else if (urlStartsWith(request.getClientUrl(), namespace) && urlStartsWith(url, pageIdentifier))
+		else if (urlStartsWith(request.getClientUrl(), namespace, pageIdentifier) && urlStartsWith(url, pageIdentifier))
 		{
 			matches = true;
 		}


[3/3] git commit: WICKET-5179 Move Form hidden field rendering to dedicated method

Posted by mg...@apache.org.
WICKET-5179 Move Form hidden field rendering to dedicated method


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

Branch: refs/heads/wicket-6.x
Commit: d0e2335536b8d5fdd08eb50d9f9258fbd9ee8581
Parents: 3e51cca
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon May 13 17:52:15 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon May 13 17:52:42 2013 +0300

----------------------------------------------------------------------
 .../org/apache/wicket/markup/html/form/Form.java   |   58 +++++++++------
 1 files changed, 34 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/d0e23355/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index a7f07f3..eb5f6c0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -1642,30 +1642,7 @@ public class Form<T> extends WebMarkupContainer
 	{
 		if (isRootForm())
 		{
-			// get the hidden field id
-			String nameAndId = getHiddenFieldId();
-
-			// render the hidden field
-			AppendingStringBuffer buffer = new AppendingStringBuffer(HIDDEN_DIV_START).append(
-				"<input type=\"hidden\" name=\"")
-				.append(nameAndId)
-				.append("\" id=\"")
-				.append(nameAndId)
-				.append("\" />");
-
-			// if it's a get, did put the parameters in the action attribute,
-			// and have to write the url parameters as hidden fields
-			if (encodeUrlInHiddenFields())
-			{
-				String url = getActionUrl().toString();
-				int i = url.indexOf('?');
-				String queryString = (i > -1) ? url.substring(i + 1) : url;
-				String[] params = Strings.split(queryString, '&');
-
-				writeParamsAsHiddenFields(params, buffer);
-			}
-			buffer.append("</div>");
-			getResponse().write(buffer);
+			writeHiddenField(getResponse());
 
 			// if a default submitting component was set, handle the rendering of that
 			if (defaultSubmittingComponent instanceof Component)
@@ -1684,6 +1661,39 @@ public class Form<T> extends WebMarkupContainer
 	}
 
 	/**
+	 * Writes the markup for the hidden input field into the provided response
+	 *
+	 * @param response
+	 *      The response to write to
+	 */
+	public final void writeHiddenField(final Response response)
+	{
+		// get the hidden field id
+		String nameAndId = getHiddenFieldId();
+
+		AppendingStringBuffer buffer = new AppendingStringBuffer(HIDDEN_DIV_START).append(
+				"<input type=\"hidden\" name=\"")
+				.append(nameAndId)
+				.append("\" id=\"")
+				.append(nameAndId)
+				.append("\" />");
+
+		// if it's a get, did put the parameters in the action attribute,
+		// and have to write the url parameters as hidden fields
+		if (encodeUrlInHiddenFields())
+		{
+			String url = getActionUrl().toString();
+			int i = url.indexOf('?');
+			String queryString = (i > -1) ? url.substring(i + 1) : url;
+			String[] params = Strings.split(queryString, '&');
+
+			writeParamsAsHiddenFields(params, buffer);
+		}
+		buffer.append("</div>");
+		response.write(buffer);
+	}
+
+	/**
 	 * 
 	 * @param params
 	 * @param buffer