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 <[email protected]> Authored: Fri May 4 14:03:31 2012 +0200 Committer: Emond Papegaaij <[email protected]> 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;
