Repository: wicket Updated Branches: refs/heads/wicket-6.x 27ccea351 -> e68e46a56
WICKET-5933 Avoid serialization of untouched page after ajax request Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e68e46a5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e68e46a5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e68e46a5 Branch: refs/heads/wicket-6.x Commit: e68e46a56d04f13c12f70f69db70159dffd8a118 Parents: 27ccea3 Author: Andrea Del Bene <â[email protected]â> Authored: Fri Jun 26 12:31:07 2015 +0200 Committer: Andrea Del Bene <â[email protected]â> Committed: Fri Jun 26 17:56:33 2015 +0200 ---------------------------------------------------------------------- .../src/main/java/org/apache/wicket/Page.java | 7 +++++-- .../org/apache/wicket/markup/html/WebPage.java | 18 +++++++++++------- .../apache/wicket/page/AbstractPageManager.java | 7 +------ 3 files changed, 17 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/e68e46a5/wicket-core/src/main/java/org/apache/wicket/Page.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/Page.java b/wicket-core/src/main/java/org/apache/wicket/Page.java index 6557684..8963278 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Page.java +++ b/wicket-core/src/main/java/org/apache/wicket/Page.java @@ -282,7 +282,7 @@ public abstract class Page extends MarkupContainer implements IRedirectListener, isInitialization)) { setFlag(FLAG_IS_DIRTY, true); - setNextAvailableId(); + setNextAvailableId(isInitialization); if (isInitialization == false) { @@ -729,9 +729,12 @@ public abstract class Page extends MarkupContainer implements IRedirectListener, } /** + * Increments the version id of the page * + * @param isInitialization + * tells if the page has been newly instantiated */ - private void setNextAvailableId() + protected void setNextAvailableId(boolean isInitialization) { setNumericId(getSession().nextPageId()); } http://git-wip-us.apache.org/repos/asf/wicket/blob/e68e46a5/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java index 5519920..6456249 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.html; import org.apache.wicket.Component; import org.apache.wicket.Page; +import org.apache.wicket.core.request.handler.IPageRequestHandler; import org.apache.wicket.markup.MarkupType; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.internal.HtmlHeaderContainer; @@ -30,7 +31,6 @@ import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.request.Request; import org.apache.wicket.request.Response; import org.apache.wicket.request.cycle.RequestCycle; -import org.apache.wicket.core.request.handler.IPageRequestHandler; import org.apache.wicket.request.http.WebRequest; import org.apache.wicket.request.http.WebResponse; import org.apache.wicket.request.mapper.parameter.PageParameters; @@ -324,19 +324,23 @@ public class WebPage extends Page { return new BookmarkablePageLink<Void>(id, getApplication().getHomePage()); } - + /** - * Prevents page from get dirty inside an AJAX request. + * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR OVERRIDE. + * + * Don't increment page version during AJAX requests. + * Do it only if page is new. */ @Override - public final void dirty(boolean isInitialization) + protected final void setNextAvailableId(boolean isInitialization) { Request request = getRequest(); - if (isInitialization == false && request instanceof WebRequest && - ((WebRequest)request).isAjax()) + if (request instanceof WebRequest && ((WebRequest)request).isAjax() + && !isInitialization) { return; } - super.dirty(isInitialization); + + super.setNextAvailableId(isInitialization); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/e68e46a5/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java b/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java index da259e4..3eda06c 100644 --- a/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java +++ b/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java @@ -104,12 +104,7 @@ public abstract class AbstractPageManager implements IPageManager @Override public IManageablePage getPage(int id) { - IManageablePage page = getRequestAdapter().getPage(id); - if (page != null) - { - getRequestAdapter().touch(page); - } - return page; + return getRequestAdapter().getPage(id); } /**
