Updated Branches:
  refs/heads/master 26a356a7c -> 12e22707d

WICKET-4286 always freeze page id when rendering the page


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

Branch: refs/heads/master
Commit: 12e22707dab7fab2b67fbe50e8f24de33a1ade5a
Parents: 26a356a
Author: Igor Vaynberg <ivaynb...@apache.org>
Authored: Wed Apr 25 14:03:40 2012 -0700
Committer: Igor Vaynberg <ivaynb...@apache.org>
Committed: Wed Apr 25 14:15:30 2012 -0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/wicket/Page.java      |   28 +++++---------
 .../FeedbackIndicatorFormPage_result2.html         |    2 +-
 2 files changed, 11 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/12e22707/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 e739e87..1a8638f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.wicket.authorization.UnauthorizedActionException;
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.markup.MarkupException;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.MarkupType;
@@ -36,9 +37,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.settings.IDebugSettings;
 import org.apache.wicket.settings.IPageSettings;
-import org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy;
 import org.apache.wicket.util.lang.Generics;
-import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.visit.IVisit;
 import org.apache.wicket.util.visit.IVisitor;
@@ -281,16 +280,12 @@ public abstract class Page extends MarkupContainer 
implements IRedirectListener,
                }
 
                final IPageManager pageManager = getSession().getPageManager();
-               if (!getFlag(FLAG_IS_DIRTY) &&
-                       (
-                               isVersioned() && 
pageManager.supportsVersioning() ||
-
-                               // we need to get pageId for new page instances 
even when the page doesn't need
-                               // versioning, otherwise pages override each 
other in the page store and back button
-                               // support is broken
-                               isInitialization
-                       )
-               )
+               if (!getFlag(FLAG_IS_DIRTY) && (isVersioned() && 
pageManager.supportsVersioning() ||
+
+               // we need to get pageId for new page instances even when the 
page doesn't need
+               // versioning, otherwise pages override each other in the page 
store and back button
+               // support is broken
+                       isInitialization))
                {
                        setFlag(FLAG_IS_DIRTY, true);
                        setNextAvailableId();
@@ -1017,11 +1012,8 @@ public abstract class Page extends MarkupContainer 
implements IRedirectListener,
        @Override
        public void renderPage()
        {
-               if 
(getApplication().getRequestCycleSettings().getRenderStrategy() != 
RenderStrategy.REDIRECT_TO_BUFFER)
-               {
-                       // don't increment page id for redirect to render and 
one pass render during rendering
-                       setFreezePageId(true);
-               }
+               // page id is frozen during the render
+               final boolean frozen = setFreezePageId(true);
                try
                {
                        ++renderCount;
@@ -1029,7 +1021,7 @@ public abstract class Page extends MarkupContainer 
implements IRedirectListener,
                }
                finally
                {
-                       setFreezePageId(false);
+                       setFreezePageId(frozen);
                }
        }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/12e22707/wicket-core/src/test/java/org/apache/wicket/markup/html/form/feedback/FeedbackIndicatorFormPage_result2.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/feedback/FeedbackIndicatorFormPage_result2.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/feedback/FeedbackIndicatorFormPage_result2.html
index 9173c87..3a45a23 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/feedback/FeedbackIndicatorFormPage_result2.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/feedback/FeedbackIndicatorFormPage_result2.html
@@ -1,6 +1,6 @@
 <html>
 <body>
-<form wicket:id="form" id="form1" method="post" 
action="../page?1-2.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+<form wicket:id="form" id="form1" method="post" 
action="../page?0-2.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
        <input type="text" wicket:id="input" value="" name="input">
 <span wicket:id="feedback"><wicket:panel><span 
style="color:red;">*</span></wicket:panel></span>
 </form>

Reply via email to