WICKET-4286 always freeze page id during render
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 c6da760..bd28823 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -37,7 +37,6 @@
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.settings.IDebugSettings;
-import org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy;
import org.apache.wicket.util.lang.Classes;
import org.apache.wicket.util.lang.Generics;
import org.apache.wicket.util.lang.WicketObjects;
@@ -313,16 +312,12 @@
}
final IPageManager pageManager = getSession().getPageManager();
- if (!getFlag(FLAG_IS_DIRTY) &&
- (
- isVersioned() && pageManager.supportsVersioning() ||
+ 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
- )
- )
+ // 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();
@@ -1032,11 +1027,8 @@
*/
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;
@@ -1044,7 +1036,7 @@
}
finally
{
- setFreezePageId(false);
+ setFreezePageId(frozen);
}
}
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>