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);
        }
 
        /**

Reply via email to