You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2012/05/04 14:12:21 UTC

[3/24] git commit: Revert "WICKET-4441 PageProvider should create a new Page instance if PageParameters are changed, even if a stored page exists."

Revert "WICKET-4441 PageProvider should create a new Page instance if PageParameters are changed, even if a stored page exists."

The commit is already reverted on 1.5. It makes it impossible to pass additional
get parameters to a behavior on a mounted page.

This reverts commit 54c86ebbd70dbd55639f91cf6a5800765b12d18c.


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

Branch: refs/heads/master
Commit: e429538ee7af3209d79ea679d9e0180ee47173cf
Parents: 37e8439
Author: Emond Papegaaij <pa...@apache.org>
Authored: Fri May 4 14:03:31 2012 +0200
Committer: Emond Papegaaij <pa...@apache.org>
Committed: Fri May 4 14:03:31 2012 +0200

----------------------------------------------------------------------
 .../wicket/core/request/handler/PageProvider.java  |   24 +---------
 .../request/mapper/BookmarkableMapperTest.java     |   14 ++---
 .../core/request/mapper/MountedMapperTest.java     |   14 ++---
 .../core/request/mapper/PackageMapperTest.java     |   14 ++----
 .../core/request/mapper/TestMapperContext.java     |   16 +-----
 .../markup/html/link/MountedPageLinkTest.java      |    1 -
 .../wicket/request/handler/PageProviderTest.java   |   38 ---------------
 7 files changed, 21 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java
index 6068e35..50402f6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java
@@ -296,10 +296,7 @@ public class PageProvider implements IPageProvider
 		IRequestablePage storedPageInstance = getPageSource().getPageInstance(pageId);
 		if (storedPageInstance != null)
 		{
-			if (
-				(pageClass == null || pageClass.equals(storedPageInstance.getClass())) &&
-				(isPageParametersEmpty(pageParameters) || arePageParametersSame(storedPageInstance))
-			)
+			if (pageClass == null || pageClass.equals(storedPageInstance.getClass()))
 			{
 				pageInstance = storedPageInstance;
 				pageInstanceIsFresh = false;
@@ -416,23 +413,4 @@ public class PageProvider implements IPageProvider
 		}
 		return pageInstanceIsFresh;
 	}
-
-	/**
-	 * A helper method that compares the requested PageParameters with the ones in the stored
-	 * page instance. {@code null} and empty PageParameters are considered equal.
-	 *
-	 * @param storedPageInstance
-	 *      the page instance with the original page parameters
-	 * @return {@code true} if the indexed and named parameters are equal, {@code false} - otherwise
-	 */
-	private boolean arePageParametersSame(IRequestablePage storedPageInstance) {
-		PageParameters currentCopy = new PageParameters(pageParameters);
-		PageParameters storedCopy = new PageParameters(storedPageInstance.getPageParameters());
-		return currentCopy.equals(storedCopy);
-	}
-
-	private boolean isPageParametersEmpty(PageParameters parameters)
-	{
-		return parameters == null || parameters.isEmpty();
-	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
index a634610..af91e93 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
@@ -112,14 +112,13 @@ public class BookmarkableMapperTest extends AbstractMapperTest
 		IRequestHandler handler = encoder.mapRequest(getRequest(url));
 
 		assertTrue(handler instanceof RenderPageRequestHandler);
-		context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters());
 		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
 		checkPage(page, 15);
 
 		PageParameters p = page.getPageParameters();
-		assertEquals(2, p.getIndexedCount());
+		assertEquals(0, p.getIndexedCount());
 
-		assertEquals(2, p.getNamedKeys().size());
+		assertEquals(0, p.getNamedKeys().size());
 	}
 
 	/**
@@ -155,7 +154,7 @@ public class BookmarkableMapperTest extends AbstractMapperTest
 
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
+
 		IRequestablePage page = h.getPage();
 		checkPage(page, 15);
 
@@ -163,9 +162,9 @@ public class BookmarkableMapperTest extends AbstractMapperTest
 		assertEquals("foo:bar", h.getComponent().getPageRelativePath());
 
 		PageParameters p = page.getPageParameters();
-		assertEquals(2, p.getIndexedCount());
+		assertEquals(0, p.getIndexedCount());
 
-		assertEquals(2, p.getNamedKeys().size());
+		assertEquals(0, p.getNamedKeys().size());
 	}
 
 	/**
@@ -205,7 +204,6 @@ public class BookmarkableMapperTest extends AbstractMapperTest
 
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
 
 		IRequestablePage page = h.getPage();
 		assertEquals(page.getRenderCount(), 5);
@@ -222,7 +220,7 @@ public class BookmarkableMapperTest extends AbstractMapperTest
 
 		context.setNextPageRenderCount(6);
 		IRequestHandler handler = encoder.mapRequest(getRequest(url));
-		context.setCurrentPageParameters(((ListenerInterfaceRequestHandler)handler).getPageParameters());
+
 		((IPageRequestHandler)handler).getPage();
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
index 76a253b..62dd866 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
@@ -156,14 +156,13 @@ public class MountedMapperTest extends AbstractMapperTest
 		IRequestHandler handler = encoder.mapRequest(getRequest(url));
 
 		assertTrue(handler instanceof RenderPageRequestHandler);
-		context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters());
 		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
 		checkPage(page, 15);
 
 		PageParameters p = page.getPageParameters();
-		assertEquals(2, p.getIndexedCount());
+		assertEquals(0, p.getIndexedCount());
 
-		assertEquals(2, p.getNamedKeys().size());
+		assertEquals(0, p.getNamedKeys().size());
 	}
 
 	/**
@@ -178,7 +177,7 @@ public class MountedMapperTest extends AbstractMapperTest
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
+
 		IRequestablePage page = h.getPage();
 		checkPage(page, 15);
 
@@ -198,7 +197,7 @@ public class MountedMapperTest extends AbstractMapperTest
 
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
+
 		IRequestablePage page = h.getPage();
 		checkPage(page, 15);
 
@@ -206,9 +205,9 @@ public class MountedMapperTest extends AbstractMapperTest
 		assertEquals("foo:bar", h.getComponent().getPageRelativePath());
 
 		PageParameters p = page.getPageParameters();
-		assertEquals(2, p.getIndexedCount());
+		assertEquals(0, p.getIndexedCount());
 
-		assertEquals(2, p.getNamedKeys().size());
+		assertEquals(0, p.getNamedKeys().size());
 	}
 
 	/**
@@ -223,7 +222,6 @@ public class MountedMapperTest extends AbstractMapperTest
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
 
 		IRequestablePage page = h.getPage();
 		checkPage(page, 15);

http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
index 094badd..a342bd5 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
@@ -156,15 +156,13 @@ public class PackageMapperTest extends AbstractMapperTest
 		IRequestHandler handler = encoder.mapRequest(getRequest(url));
 
 		assertTrue(handler instanceof RenderPageRequestHandler);
-
-		context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters());
 		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
 		checkPage(page, 15);
 
 		PageParameters p = page.getPageParameters();
-		assertEquals(2, p.getIndexedCount());
+		assertEquals(0, p.getIndexedCount());
 
-		assertEquals(2, p.getNamedKeys().size());
+		assertEquals(0, p.getNamedKeys().size());
 	}
 
 	/**
@@ -199,7 +197,6 @@ public class PackageMapperTest extends AbstractMapperTest
 
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
 
 		IRequestablePage page = h.getPage();
 		checkPage(page, 15);
@@ -208,9 +205,9 @@ public class PackageMapperTest extends AbstractMapperTest
 		assertEquals("foo:bar", h.getComponent().getPageRelativePath());
 
 		PageParameters p = page.getPageParameters();
-		assertEquals(2, p.getIndexedCount());
+		assertEquals(0, p.getIndexedCount());
 
-		assertEquals(2, p.getNamedKeys().size());
+		assertEquals(0, p.getNamedKeys().size());
 	}
 
 	/**
@@ -248,7 +245,6 @@ public class PackageMapperTest extends AbstractMapperTest
 
 		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
 		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
-		context.setCurrentPageParameters(h.getPageParameters());
 
 		IRequestablePage page = h.getPage();
 		assertEquals(page.getRenderCount(), 5);
@@ -265,9 +261,9 @@ public class PackageMapperTest extends AbstractMapperTest
 		context.setNextPageRenderCount(6);
 
 		IRequestHandler handler = encoder.mapRequest(getRequest(url));
-		context.setCurrentPageParameters(((ListenerInterfaceRequestHandler)handler).getPageParameters());
 
 		((IPageRequestHandler)handler).getPage();
+
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
index 98f5983..b3e137a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
@@ -50,7 +50,6 @@ public class TestMapperContext implements IMapperContext
 	PageStoreManager pageManager;
 	private String appName;
 	private boolean createMockPageIfInstanceNotFound = true;
-	private PageParameters currentPageParameters = null;
 
 	/**
 	 * Construct.
@@ -172,11 +171,6 @@ public class TestMapperContext implements IMapperContext
 			page.setCreatedBookmarkable(createdBookmarkable);
 			page.setRenderCount(nextPageRenderCount);
 			requestablePage = page;
-			if (currentPageParameters != null)
-			{
-				page.getPageParameters().overwriteWith(currentPageParameters);
-				currentPageParameters = null;
-			}
 		}
 		return requestablePage;
 
@@ -190,7 +184,8 @@ public class TestMapperContext implements IMapperContext
 	{
 		try
 		{
-			MockPage page = (MockPage)pageClass.newInstance();
+			MockPage page;
+			page = (MockPage)pageClass.newInstance();
 			page.setPageId(++idCounter);
 			page.setBookmarkable(true);
 			page.setCreatedBookmarkable(true);
@@ -224,12 +219,6 @@ public class TestMapperContext implements IMapperContext
 		return MockPage.class;
 	}
 
-	public TestMapperContext setCurrentPageParameters(PageParameters parameters)
-	{
-		this.currentPageParameters = parameters;
-		return this;
-	}
-
 	/**
 	 *
 	 * Adapts {@link PageProvider} to this {@link IMapperContext}
@@ -238,6 +227,7 @@ public class TestMapperContext implements IMapperContext
 	 */
 	public class TestPageProvider extends PageProvider
 	{
+
 		/**
 		 * Construct.
 		 *

http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
index 22722e3..a665352 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
@@ -17,7 +17,6 @@
 package org.apache.wicket.markup.html.link;
 
 import org.apache.wicket.WicketTestCase;
-import org.apache.wicket.core.request.mapper.StalePageException;
 import org.apache.wicket.protocol.http.PageExpiredException;
 import org.apache.wicket.core.request.mapper.PageInstanceMapper;
 import org.apache.wicket.request.mapper.parameter.PageParameters;

http://git-wip-us.apache.org/repos/asf/wicket/blob/e429538e/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
index 1fdd331..fc22a58 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
@@ -34,7 +34,6 @@ import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.core.request.mapper.StalePageException;
 import org.apache.wicket.core.request.mapper.TestMapperContext;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.resource.StringResourceStream;
@@ -253,36 +252,6 @@ public class PageProviderTest extends WicketTestCase
 		assertTrue(provider.isPageInstanceFresh());
 	}
 
-	/**
-	 * https://issues.apache.org/jira/browse/WICKET-4441
-	 *
-	 * ProductPage is mounted at /product/${productId}.
-	 * A request to /product/10?2 will show the product with id = 10.
-	 * A following request to /product/20?2 (e.g. a bookmarked url sent by a colleague)
-	 * will again show product with id=10 ignoring the fact that product with id=20 is
-	 * requested because Wicket loads the old page with pageId=2 from the current session.
-	 */
-	@Test
-	public void ignorePageFoundByIdIfItsClassMatchButPageParametersDont()
-	{
-		TestMapperContext mapperContext = new TestMapperContext();
-		PageParameters initialParameters = new PageParameters();
-		initialParameters.add("name1", "value1");
-		Page page = new TestPage(initialParameters);
-		mapperContext.getPageManager().touchPage(page);
-		mapperContext.getPageManager().commitRequest();
-
-		// by cleaning session cache we make sure of not being testing the same in-memory instance
-		mapperContext.cleanSessionCache();
-
-		PageParameters newParameters = new PageParameters();
-		newParameters.add("name2", "value2");
-		PageProvider provider = new PageProvider(page.getPageId(), TestPage.class, newParameters, 0);
-		assertFalse(provider.hasPageInstance());
-		assertEquals(TestPage.class, provider.getPageInstance().getClass());
-		assertTrue(provider.isPageInstanceFresh());
-	}
-
 	/** */
 	public static class TestPage extends WebPage implements IMarkupResourceStreamProvider
 	{
@@ -293,13 +262,6 @@ public class PageProviderTest extends WicketTestCase
 		/** */
 		public TestPage()
 		{
-			this(new PageParameters());
-		}
-
-		public TestPage(PageParameters parameters)
-		{
-			super(parameters);
-
 			add(link = new Link<Void>("link")
 			{
 				private static final long serialVersionUID = 1L;