You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2015/05/20 21:11:10 UTC
wicket git commit: WICKET-5911 reset all flags after render
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x 98f9c7aa8 -> a58cf45bd
WICKET-5911 reset all flags after render
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a58cf45b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a58cf45b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a58cf45b
Branch: refs/heads/wicket-6.x
Commit: a58cf45bd865fd488fac86b94202830a3354a934
Parents: 98f9c7a
Author: Sven Meier <sv...@apache.org>
Authored: Wed May 20 21:01:24 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Wed May 20 21:10:22 2015 +0200
----------------------------------------------------------------------
.../main/java/org/apache/wicket/Component.java | 2 +-
.../org/apache/wicket/MarkupContainerTest.java | 52 ++++++++++++++++++++
2 files changed, 53 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/a58cf45b/wicket-core/src/main/java/org/apache/wicket/Component.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java
index 9390afc..cfed144 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -928,7 +928,7 @@ public abstract class Component
finally
{
// this flag must always be set to false.
- setFlag(FLAG_RENDERING, false);
+ markRendering(false);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/a58cf45b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
index e9ea15a..ad29d5b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/MarkupContainerTest.java
@@ -118,6 +118,24 @@ public class MarkupContainerTest extends WicketTestCase
}
/**
+ * https://issues.apache.org/jira/browse/WICKET-5911
+ */
+ @Test
+ public void rerenderAfterRenderFailure()
+ {
+ FirstRenderFailsPage page = new FirstRenderFailsPage();
+ try {
+ tester.startPage(page);
+ } catch (WicketRuntimeException expected) {
+ }
+
+ tester.startPage(page);
+
+ // rendering flags where properly reset, so second rendering works properly
+ assertEquals(2, page.beforeRenderCalls);
+ }
+
+ /**
* https://issues.apache.org/jira/browse/WICKET-4012
*/
@Test
@@ -184,4 +202,38 @@ public class MarkupContainerTest extends WicketTestCase
"<html><body><div wicket:id='a1'><div wicket:id='a2'><div wicket:id='a3'></div></div></div></body></html>");
}
}
+
+ private static class FirstRenderFailsPage extends WebPage implements IMarkupResourceStreamProvider
+ {
+ private boolean firstRender = true;
+
+ private int beforeRenderCalls = 0;
+
+ private FirstRenderFailsPage()
+ {
+
+ WebMarkupContainer a1 = new WebMarkupContainer("a1") {
+ @Override
+ protected void onBeforeRender() {
+ super.onBeforeRender();
+
+ beforeRenderCalls++;
+
+ if (firstRender) {
+ firstRender = false;
+ throw new WicketRuntimeException();
+ }
+ }
+ };
+ add(a1);
+ }
+
+ @Override
+ public IResourceStream getMarkupResourceStream(MarkupContainer container,
+ Class<?> containerClass)
+ {
+ return new StringResourceStream(
+ "<html><body><div wicket:id='a1'></div></body></html>");
+ }
+ }
}